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?
Répondre
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.
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
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.
+1 - merci pour les heads up! –
On dirait que la confiance partielle pour Unity n'est plus supportée. http://msdn.microsoft.com/en-us/library/dd203232.aspx –
- 1. L'attribut Unity [Dependency] ne se résout pas
- 2. pourquoi ne pas utiliser plus de Grails?
- 3. Pourquoi ne puis-je pas utiliser AsyncMethodCaller?
- 4. htc files: Pourquoi ne pas les utiliser?
- 5. Pourquoi ne pas utiliser Interface Builder
- 6. OpenGL - utiliser ou ne pas utiliser? pourquoi - Application iPhone dev
- 7. Comment utiliser l'interception avec WCF et Unity
- 8. contrôle personnalisé WPF avec Unity ne pas résoudre
- 9. Unity: Utiliser le même datacontext dans application_BeginRequest?
- 10. Pourquoi je ne peux pas utiliser mon serveur apache?
- 11. Pourquoi ne pas utiliser ma boucle conteneur foreach?
- 12. Pourquoi ne pas utiliser TFS comme solution de build/CI?
- 13. Pourquoi ne puis-je pas utiliser l'espace de noms 'AccessDeniedException'?
- 14. pourquoi ne peut pas utiliser \ » dans la balise d'entrée HTML
- 15. Pourquoi ne devrais-je pas utiliser async (evented) IO
- 16. Pourquoi ne puis-je pas utiliser LINQ dans mes vues?
- 17. Pourquoi ne pas utiliser correctement cette position avec css?
- 18. Qt 101: Pourquoi ne puis-je pas utiliser cette classe?
- 19. Pourquoi ne pas utiliser JQuery pour se connecter?
- 20. Pourquoi ne pas utiliser GDI + à partir d'ASP.NET
- 21. Android: Pourquoi ne pas utiliser les activités dans les onglets?
- 22. Pourquoi ne puis-je pas utiliser attr_accessor dans l'initialisation?
- 23. Unity 2 - Pourquoi la méthode BuildUp a-t-elle changé?
- 24. ContentPresenter ne montrant pas Usercontrol, pourquoi pas?
- 25. Pour utiliser ou ne pas utiliser session_set_save_handler?
- 26. var Utiliser ou ne pas utiliser var
- 27. Spécifier le constructeur pour le conteneur Unity IoC à utiliser
- 28. Pourquoi ou pourquoi ne pas utiliser 'UL' pour spécifier non signé longtemps?
- 29. "Personne ne devrait plus utiliser MFC" Pourquoi?
- 30. Constructeurs Unity
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. –
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