2009-12-02 23 views
24

Ich verwende den Unity IoC-Container. Es war wirklich keine Entscheidung, die ich getroffen habe, es kam nur mit Prism, und ich bin einfach dabei geblieben. Ich habe noch nie andere IoC-Frameworks verwendet und ich muss zugeben, dass ich mit Unity sehr zufrieden bin. Die Zufriedenheit mag jedoch aus Unwissenheit kommen, da ich nicht wirklich weiß, was die anderen Frameworks zu bieten haben.Warum sollte ich nicht Unity verwenden?

Ich höre immer wieder, dass ich den Unity IoC Container nicht benutzen sollte. "Benutze stattdessen Castle, nInject oder StructureMap", sagen die Leute, aber ich habe noch immer keine konkreten Argumente oder Beispiele gehört, warum ich einen anderen Rahmen verwenden sollte. Also, warum sollte ich nicht Unity benutzen? Oder vielleicht sollte ich?

+3

Die akzeptierte Antwort auf diese stackoverflow Frage (http://stackoverflow.com/questions/411660/enterprise-library-unity-vs-other-ioc-containers) wurde zu einem wirklich detaillierten Blogpost (hier, http: // elegycode.com/2009/01/07/ioc-libraries-compared/) das kann hilfreich sein. –

+0

In der Tat sehr nützlich! Ich habe diese Frage irgendwie verpasst, als ich nach vorhandenen zu diesem Thema suchte. Vielen Dank! – stiank81

Antwort

14

Diese Behälter neigen dazu, etwa Geschmack, mehr als alles andere. Ninject hat eine nette fließende Oberfläche, um es zu konfigurieren, aber einige Leute mögen die Fähigkeit von Unity, über config (Masochisten, denke ich) sowie Code zu konfigurieren.

Ich, wie Sie, hatte diese Fragen, wenn ich Prism übernahm, also ging ich die Übung durch, Unity durch Ninject und Autofac zu ersetzen. Ich habe keinen zwingenden Grund in Bezug auf Leistung oder Funktionen gefunden, um bei Unity zu bleiben. Es gibt bestimmte Dinge, die in beiden gut waren, aber sie alle machten im Grunde dasselbe und taten es gut.

Ich würde die Funktionen, Stil und Syntax von jedem betrachten und entscheiden, welche Sie am besten gefällt. Das ist wirklich der einzige Unterschied ... wie es fühlt. Es gibt im Allgemeinen einige grundlegende Unterschiede, aber die Wahrscheinlichkeit, dass Sie diese benötigen, ist ziemlich gering.

Veröffentlichen Sie ein Update über das, was Sie entscheiden ... Ich bin immer interessiert an den realen Ergebnissen der Leute im Vergleich zu dem, was leidenschaftliche Benutzer befürworten.

+4

Haben einige Nachforschungen gemacht, aber keine guten Gründe gefunden, Unity für jetzt zu verwenden. Also - Schlussfolgerung ist "Wenn es nicht kaputt ist - repariere es nicht" - Ich bleibe bei Unity. Es ist möglich, dies später zu ändern, wenn eine Krise auftaucht. Wenn ich mich ändern würde, würde ich mit StructureMap gehen. Danke für deine Antwort! – stiank81

12

Ein Grund für die Verwendung von Unity ist, wenn Sie in einer vertrauenswürdigen Umgebung arbeiten müssen. Nach dem, was ich gefunden habe, scheint es einfacher zu sein, Unity zu starten, wenn Ihr Code nicht vollständig vertrauenswürdig ist. Ich habe ein paar IoC-Container verwendet und verwende Unity, wenn ich ein mittleres Vertrauen brauche.

+2

+1 - Danke für die Köpfe! –

+0

Sieht aus, als ob Teilvertrauen für Unity nicht mehr unterstützt wird. http://msdn.microsoft.com/en-us/library/dd203232.aspx –

Verwandte Themen