Je sais quelle injection de dépendance est en théorie, mais je n'ai jamais réellement utilisé l'injection de dépendance dans aucun de mes projets. Alors considérez-moi d'être un di noob. P>
La question directe est; MEF peut être utilisé pour une injection de dépendance? B> P>
Si cela peut, ma question de suivi est; est-ce une bonne idée d'utiliser Mef pour une injection de dépendance? B> P>
Je comprends que ma question de suivi peut être considérée comme subjective. Mais je cherche de meilleures pratiques et des raisons pour lesquelles et contre. Donc, j'espère que ma question de suivi ne brille pas trop de plumes. P>
Le contexte de tout cela est que je me sens un peu perdu en essayant de déterminer comment faire un cadre de plug-in pour ASP.NET MVC. p>
3 Réponses :
mef peut, je crois, être utilisé pour une injection de dépendance; Au moins, je l'utilise dans mon propre projet de petite maison WPF actuellement. Je soupçonne que cela pourrait devenir désordonné lorsque vous devez injecter différents types pour une interface pour différents déploiements de votre application, si vous en avez besoin. Il faudrait faire des efforts pour ajouter les bonnes classes à votre catalogue. P>
où je travaille, en utilisant ASP.NET MVC2, nous utilisons le château Windsor pour une injection de dépendance. Nous utilisons alors de la configuration XML pour initialiser le conteneur. Cela signifie que nous pouvons injecter différents types pour une interface sans avoir à reconstruire. P>
Je crois que .NET offre une autre option au MEF, également appelée MAF. Il est censé être plus complexe, mais offrir beaucoup plus de contrôle. Je ne sais cependant rien de plus à ce sujet. P>
(Je ne suis pas très expérimenté (1 an employé), donc si quelqu'un est en désaccord avec quelque chose, ils sont probablement plus corrects) p>
Comme j'explique dans Mon livre MEF peut être utilisé comme Un conteneur di / fort>, mais dans son incarnation actuelle, il est pas particulièrement bien adapté à la tâche fore> pour la tâche. P>
mef a été conçu pour traiter
Pensez-vous que votre livre serait un bon premier pas vers la compréhension de DI? Quelles sont les prérequis?
Le but du livre est d'enseigner à DI, alors oui, je pense que c'est une excellente première étape. Il s'attend à ce que vous ayez quelques années d'expérience avec .NET (C #), et cela ne fait pas mal si vous savez ce qu'est un modèle de conception.
Block Glenn (ancien chef de produit de MEF) a répondu à cette FAQ dans un blog post . p>
La plupart des lacunes mentionnées dans son poste ont été traitées par MEFCONTRIB : Il contient un catalogue supplémentaire et une exportation Mises en œuvre des fournisseurs pour ajouter de la prise en charge des POCOS, des génériques ouverts et de l'interception. P>
update strong>: le mef2 Aperçu3 ajoute le support Pour les génériques ouverts et Enregistrement sans attribut hors de la boîte. Les API des communiqués d'aperçu ne sont pas définitifs, mais il s'agit d'une bonne indication que ces fonctionnalités seront dans la version suivante (> V4.0) .NET. P>
Bon article sur Mef2 MVC Intégration ici: blogs.msdn.com/b/bclteam/archive/2011/11/11/...
Considérer également le cadre de la turbine MVC