Dans quelle mesure, le cas échéant, est un message de remplacement pour prisme? p>
4 Réponses :
Ce n'est pas évident, mais c'est la même question:
Cadre d'extensibilité géré (MEF) vs. Bloc d'application UI composite (CAB) P>
Consensus dans le poteau en double est que le MEF et le PrISM fournissent le même ensemble de fonctionnalités de base de différentes manières, sauf que le prisme fournit le Agregistrateur d'événement , qui est un moyen de communication de la communication entre les composants d'applications. Vous pouvez également l'utiliser avec MEF. C'est à peu près la préférence, vraiment. P>
Ugh ... Je sais que c'était il y a un an et j'ai beaucoup appris, mais cette réponse est vraiment fausse. Le poste de Glenn Block est plus précis. Vous pouvez voir cela le plus en évidence dans le fait que Prism v4 a une option pour utiliser i> MEF pour diverses formes de CIO et de composition. Je ne peux pas supprimer ou même descendre mon propre poste.
C'est étrange de lire quelque chose et de dire "Qui est ce imbécile? ... Oh"
+1 pour une honnêteté pure. Bien que votre réponse ne soit pas la "la plus correcte", cela donne un aperçu contrairement à la réponse de Glenn. Les lignes de responsabilité / fonctionnalité entre le MEF / PRISM / UNITY / MAF sont assez floues (et vous ne méritez pas non plus un bowvote).
Aujourd'hui, je dirais que Prism et Mef se complètent. Tout comme Prism and Unity. Prism introduit un ensemble de services spécifiques tels que RégionManager, DélégationCommand et Épargregator qui aident à créer des applications composites. Le MEF d'autre part est un mécanisme de composition plus général d'extensibilité des applications et des cadres, qu'ils soient composites ou non. Le distinguateur clé à propos de Mef est une découverte qui signifie qu'il peut sortir et découvrir toutes les pièces disponibles de manière dynamique. P>
Vous pourriez être intéressé par la vérification du projet MEF Contriblets (MEFCONTRIB.CODEPLEX.COM) qui contient une couche d'intégration pour l'unité et le MEF. Avec cette extension, l'unité gère Mef dans les coulisses, de sorte que vous n'êtes pas soumis à deux contestations. L'avantage est-il permettant d'utiliser l'unité des Pocos généraux et du MEF pour la découverte des extensions. Ainsi, comme prisme est actuellement construit sur l'unité, vous pouvez l'utiliser pour tirer parti du MEF. Pour utiliser le projet de contributions, vous devrez effectuer de légères modifications à votre unité BootsTrapper, mais elle devrait être assez triviale. P>
Il y a certainement des chevauchements. L'endroit où il est le plus important concerne les modules. Prisme utilise un imodule comme moyen de découverte. En MEF, tout composant peut être une partie et peut être découverte de manière dynamique. Cela signifie avec Mef que vous avez une modularité de haut en bas, où les modules sont plus granulaires. Les applications composites sont définitivement une zone que nous sommes personnalisés avec le MEF. Au fil du temps, il est fort probable que vous verrez de plus en plus de soutien à la construction de ces types d'applications dans le MEF lui-même. Nous travaillons avec P & P pour que cela se produise, il existe une transition en douceur. P>
N'oubliez pas que Soutien du MEF dans Prism se termine à une fin : "Mef est pris en charge avec WPF pour la compatibilité avec les versions précédentes. Il ne sera pas ajouté aux formulaires Windows 10 UWP ou XAMARIN. "
mef ne remplacera jamais prisme p>
mef est un gestionnaire d'injection de dépendance.Is pas un conteneur d'injection de dépendance.
Le MEF offre la possibilité d'attribuer des exportations et des importations de manière delclarite à l'aide d'attributs. p>
Prisme avec MEF vous permet de vous permettre de découvrir automatiquement des dlls et de la possibilité d'ajouter et de supprimer des plugins en ajoutant ou en supprimant des DLL. D'où comme le cadre de Prism fournit un agrégateur d'événements, Région Manager, localisateur de services. p>
Vous pouvez utiliser Prism sans mef. Il existe différentes autres options telles que NInject, Unity et d'autres conteneurs DI. p>
Vous pouvez utiliser Mef avec prisme pour créer des applications extensibles à base de plugin. p>