2009-05-22 15 views
5

Nous envisageons actuellement d'utiliser CAB ou MEF pour notre prochaine application. Je n'ai pas vu d'exemples sur le codeplex de la façon dont le courtage d'événements est géré pour la communication de contrôle de la fratrie, peut-être que je l'ai manqué. Comment fonctionne la communication inter-contrôle dans MEF?Cadre d'extensibilité géré (MEF) versus bloc d'application d'interface utilisateur composite (CAB)

En outre, nous prévoyons d'utiliser Infragistics qui a fourni des composants supplémentaires pour le cadre CAB. Dans quelle mesure les contrôles Infragistics s'intègrent-ils dans le MEF?

Dans l'ensemble, le MEF vaut-il la peine d'être appliqué pour une application de 15 000 heures de développement strictement décente?

Répondre

8

Je peux me tromper mais je ne pense pas que MEF ait un courtage d'événements. C'est un moteur de composition général similaire aux conteneurs ioc mais destiné à une solution plus générale d'extension et d'extension d'application. D'un autre côté, CAB et Prism sont des frameworks d'interface utilisateur qui permettent aux applications composites constituées de composants d'interface utilisateur. Étant donné que les composants de l'interface utilisateur auront très probablement besoin de communiquer entre eux et de répondre aux activités des autres composants de l'interface utilisateur, le cadre sous-jacent doit fournir un mécanisme d'événement (pub/sub) entre les composants de l'interface utilisateur.

6

Si vous utilisez MEF avec WPF et le modèle MVVM, vos pièces exportent généralement les classes ViewModel et View (par exemple, DataTemplates, etc.). Votre vue se lie au ViewModel et utilise les propriétés et les commandes de dépendance pour communiquer entre les deux. Par conséquent, si la partie A doit communiquer avec la partie B, la partie A peut importer une référence au ViewModel de la partie B et effectuer des appels de méthode dans les deux sens. La partie A peut également enregistrer des gestionnaires d'événements pour les événements de la partie B, etc.

2

Je suis d'accord avec Scott. Le pub/sous-modèle "générique" semble intéressant mais j'ai rarement eu besoin de le faire. Si je veux un message découplé, avec MEF, je définis simplement un contrat IMessage, puis j'exporte une implémentation, puis j'importe n'importe où j'en ai besoin. Si c'est un message fortement typé, j'importerai la partie exacte dont j'ai besoin de parler et j'en ferai directement un message.