MEF doit-il être utilisé dans une application de production?


4

Je dois actuellement fournir un moyen d'ajouter de l'extensibilité dans mon application. Je suis actuellement en train de regarder MEF et MAF. MEF fournit un modèle de programmation plus simple et mieux adapté à nos scénarios d'utilisation, car nous voulons seulement charger des addins dans un seul AppDomain - ceci est dû à la façon dont le système a été architecturé. La même chose peut être réalisée avec MAF avec quelques lignes de code aussi.

Cependant, je me demandais si MEF devrait être utilisé dans les systèmes de production, étant donné son statut de prévisualisation?

5

MEF a traversé plusieurs itérations, et je pense qu'il est assez proche d'une API stable maintenant (peut-être à l'exception de son support Silverlight). Rappelez-vous que MEF fera partie de .NET 4.0 et que VS2010 devrait utiliser MEF pour son modèle d'extensibilité, il y a donc un fort désincitatif à changer radicalement l'API à ce stade avancé. FWIW, je n'ai eu aucun problème avec la stabilité de MEF, et je ne verrais aucun problème à l'utiliser dans un système de production. Traitez-le simplement avec la même prudence que vous le feriez pour tout autre composant open source.


0

Je pense que vous ne devriez pas avoir à vous soucier de la nouvelle version ou des changements de MEF. MEF est un assemblage de bibliothèque. Dans votre application de production, vous pouvez ajouter une bibliothèque MEF à votre projet et toujours copier l'assembly vers votre destination de déploiement locale. De cette façon, votre application de production restera avec cette version.

J'ai utilisé de nombreuses bibliothèques Open Source. Tant que vous avez les fichiers de bibliothèque dans le même dossier où votre application est déployée, vous serez OK. Il est préférable d'obtenir les codes sources des projets open source d'origine ou de les ajouter à votre solution. Cela vous aidera si vous avez besoin de déboguer dans la bibliothèque.


2

J'écris actuellement une "vraie" application basée sur MEF. Ma première étape consistait à construire un framework d'application extensible générique (avec des menus extensibles, des barres d'outils, une barre d'état, des fenêtres ancrables, etc.). Nous avons ouvert sourced que SoapBox Core. J'ai également posté un demo expliquant comment cela fonctionne. Je pense certainement qu'il est prêt à utiliser dans des applications réelles.