Question

Quels sont les problèmes résolus par MEF (Managed Extensibility Framework) qui ne peuvent pas être résolus par les conteneurs IoC / DI existants?

Était-ce utile?

La solution

L’objectif principal du MEF est l’extensibilité; pour servir de cadre «plug-in» lorsque l'auteur de l'application et l'auteur du plug-in ( extension ) sont différents et n'ont aucune connaissance particulière les uns des autres au-delà d'une interface publiée ( contract ) bibliothèque.

Un autre problème rencontré par MEF dans l'espace est différent des suspects habituels d'IoC, et l'un des points forts de MEF est la découverte [extension]. Il dispose de nombreux mécanismes de découverte extensibles qui agissent sur les métadonnées que vous pouvez associer à des extensions. Sur le site MEF CodePlex:

"MEF permet de baliser les extensions avec des métadonnées supplémentaires facilitant l'interrogation et le filtrage" "

Combiné avec la possibilité de retarder le chargement des extensions étiquetées, pouvoir interroger les métadonnées d'extension avant de charger ouvre la porte à une multitude de scénarios intéressants et active de manière substantielle des fonctionnalités telles que [plug-in] la gestion des versions.

MEF propose également des "adaptateurs de contrat" ??permettant d'adapter ou de transformer les extensions ( du type> au type ) avec un contrôle complet sur les détails de ces transformations. Les adaptateurs de contrat ouvrent un autre front créatif par rapport à ce que signifie "découverte" et implique.

Encore une fois, l’intention des MEF est fortement axée sur l’extensibilité de plug-in anonyme, ce qui la différencie beaucoup des autres conteneurs IoC. Ainsi, bien que MEF puisse être utilisé pour la composition, il ne s’agit là que d’une petite intersection de ses capacités par rapport à d’autres IoC, avec lesquelles, je suppose, nous assisterons à de nombreuses interactions incestueuses.

Autres conseils

Les conteneurs IoC se concentrent sur ce que vous savez, c’est-à-dire que je sais que je vais utiliser un enregistreur dans un test unitaire et un enregistreur différent dans mon application. MEF se concentre sur ce que vous ne faites pas, il y a 1 à n enregistreurs pouvant apparaître dans mon système.

Scott Hanselman et moi-même avons traité ce sujet plus en détail dans les récents reportages.

http://www.hanselminutes.com/default.aspx?showID=166

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top