Frage

Welches IOC muss bei der Entwicklung von ASP.NET -Webanwendungsprojekt und wie hoch von verschiedenen IOC berücksichtigt werden?

  1. ObjectBuilder
  2. Einheit
  3. Spring.net
War es hilfreich?

Lösung

Es ist nicht in Ihrer Liste, sondern überlegen Sie es sich zu betrachten Schloss Windsor

Anzahl der Einrichtungen wie die Unterstützung von Fabriken, damit das Fabrikprodukt nicht die Fabrik selbst oder die WCF -Einrichtung für die Injektion eines Proxy oder die Erstellung eines Hosts mit Abhängigkeiten injiziert wird.

Hat eine schöne, fließende Schnittstelle für die Verkabelung einzelner Elemente, aber vorzugsweise würden Sie eine Konvention verwenden, um automatisch zu verdrahten, damit Sie nicht jede Komponente auflisten müssen.

Einige andere schöne Eigenschaften:

  • Benötigt eine einzige DLL seit neuer Revision.
  • Unterstützt die Injektion von Listen und Arrays über Sub -Dependancy -Resolver

Hier ist eine Umfrage, die in diesem Jahr durchgeführt wurde, um das bevorzugte IOC zu zeigen. Unity scheint an der Spitze zu sein, aber das liegt wahrscheinlich daran, dass es sich um ein Microsoft -Produkt handelt und Microsoft -Workshops standardmäßig aufnehmen.

Andere Tipps

Wir gebrauchen Struktururemap Bei einem ASP.NET -MVC -Projekt und fand es unglaublich nützlich. Der einzige wirkliche Nachteil ist die begrenzte Dokumentation. Die automatische Verdrahtung funktioniert sehr gut und erfordert nur sehr wenig Konfiguration, wenn Sie starke Konventionen verwenden, um Ihre Klassen und Schnittstellen zu benennen, z. B.:

 public interface ISomething { ... }

 public class Something: ISomething { ... }

Zuvor haben wir Spring.net verwendet, obwohl wir dies abgelegt haben, weil es viele andere (Nicht-IOC-) Dinge ausreicht, die wir nicht wirklich brauchten, und die eine komplexe XML-Konfiguration benötigten, um das zu tun, was wir brauchten. Als IOC -Behälter funktionierte es jedoch gut und war sehr flexibel.

Das Schlüssel, das ich empfehlen würde, was Sie wählen, ist die Codierung, um die Verwendung von IOC zu ermöglichen. Wir verwenden Schnittstellen überall. Dies hilft wirklich dabei, Unit -Tests und alle Vorteile zu testen, die ebenfalls mitbringen.

Das Unity -Zeug in MVC3 sieht auch interessant aus, hatte aber noch keine Chance, damit zu spielen.

Ich bezweifle, dass viele Menschen mehr als zwei oder drei davon verwendet haben, und in meiner ziemlich begrenzten Erfahrung mit Einheit und Ninjekt gibt es keinen großen Unterschied im Endergebnis. Sie haben leicht Verschiedene Optionen für die Konfiguration der Zuordnungen, und ich bin sicher, dass einige der fortgeschritteneren Funktionen unterschiedlich sind, aber diese werden wahrscheinlich selten verwendet. Am Ende des Tages sind die Kernanforderungen für einen IOC -Container nicht so kompliziert - Sie könnten ganz einfach Ihre eigenen rollen.

Weitaus wichtiger ist, dass Sie ein IOC -Muster verwenden, für die Sie sich für eine bestimmte Marke wahrscheinlich nicht wesentlich auf die Qualität der resultierenden Anwendung auswirken.

Für das, was es wert ist, würde ich Ninjekt empfehlen, wenn es nur weil es sehr leicht ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top