2009-12-02 9 views
24

J'utilise le conteneur Unity IoC. Ce n'était vraiment pas une décision que j'ai prise, c'est juste venu avec Prism, et je suis juste resté avec elle. Je n'ai jamais utilisé d'autres frameworks IoC, et je dois admettre que je suis assez content avec Unity. Cependant, la satisfaction peut provenir de l'ignorance car je ne sais pas vraiment ce que les autres cadres ont à offrir. Je n'arrête pas d'entendre que je ne devrais pas utiliser le conteneur Unity IoC. «Utilisez plutôt Castle, nInject ou StructureMap», disent les gens, mais je n'ai toujours pas entendu d'arguments ou d'exemples concrets expliquant pourquoi je devrais utiliser un cadre différent. Alors, pourquoi ne devrais-je pas utiliser Unity? Ou peut-être que je devrais?Pourquoi ne devrais-je pas utiliser Unity?

+3

La réponse acceptée à cette question stackoverflow (http://stackoverflow.com/questions/411660/enterprise-library-unity-vs-other-ioc-containers) est devenue un article de blog très détaillé (ici, http: // elegantcode.com/2009/01/07/ioc-libraries-compared/) qui pourrait être utile. –

+0

En effet très utile! J'ai d'une manière ou d'une autre manqué cette question en cherchant des existants sur le sujet. Merci! – stiank81

Répondre

14

Ces conteneurs ont tendance à être environ goût, plus que tout. Ninject a une belle interface fluide pour la configurer, mais certaines personnes aiment la capacité d'Unity à être configurée via config (masochists, je pense) ainsi que le code. Moi, comme vous, j'avais ces questions quand j'adoptais Prism, alors j'ai fait l'exercice de remplacer Unity par Ninject et Autofac. Je n'ai trouvé aucune raison impérieuse en termes de performances ou de fonctionnalités à coller avec soit sur Unity. Il y a certaines choses qui étaient bien dans les deux, mais ils ont tous fait fondamentalement la même chose et l'ont bien fait. Je voudrais regarder les caractéristiques, le style et la syntaxe de chacun et décider lequel vous préférez. C'est vraiment la seule différence ... comment ça se sent. Il y a généralement quelques différences de fonctionnalités de base, mais la probabilité de vous en avoir besoin est assez mince.

Publier une mise à jour sur ce que vous décidez ... Je suis toujours intéressé par les résultats réels des gens par rapport à ce que les utilisateurs passionnés préconisent.

+4

A fait quelques recherches, mais n'a pas trouvé de bonnes raisons de ne pas utiliser Unity pour l'instant. Donc - conclusion est "Si ce n'est pas cassé - ne le répare pas" - Je reste avec Unity. Il est possible de changer cela plus tard si une crise survient. Si je devais changer, j'irais avec StructureMap. Merci pour votre réponse! – stiank81

12

Une raison d'utiliser Unity est si vous avez besoin de travailler dans un environnement de confiance moyenne. D'après ce que j'ai trouvé, Unity semble beaucoup plus facile à utiliser si votre code n'a pas une confiance totale. J'ai utilisé quelques conteneurs IoC et j'utilise Unity lorsque j'ai besoin d'une confiance moyenne.

+2

+1 - merci pour les heads up! –

+0

On dirait que la confiance partielle pour Unity n'est plus supportée. http://msdn.microsoft.com/en-us/library/dd203232.aspx –