[C#] Quali framework di .NET Dependency Injection vale la pena esaminare?


Answers

Dipende da ciò che stai cercando, poiché ognuno ha i suoi pro e contro.

  1. Spring.NET è il più maturo in quanto esce da Spring dal mondo Java. Spring ha un set molto ricco di librerie framework che lo estendono per supportare Web, Windows, ecc.
  2. Castle Windsor è uno dei più utilizzati nella piattaforma .NET e ha il più grande ecosistema, è altamente configurabile / estensibile, ha una gestione personalizzata a vita, supporto AOP, ha un supporto NHibernate intrinseco ed è un contenitore fantastico. Windsor fa parte di un intero stack che include Monorotaia, Active Record, ecc. NHibernate si basa su Windsor.
  3. Structure Map ha una configurazione molto ricca e con grana fine attraverso un DSL interno.
  4. Autofac è un contenitore IoC della nuova era con tutto il suo intrinseco supporto alla programmazione funzionale. Adotta anche un approccio diverso sulla gestione della vita rispetto agli altri. Autofac è ancora molto nuovo, ma spinge la barra su ciò che è possibile con IoC.
  5. Ho sentito dire che più ossa nude con meno è un approccio più (sentito non sperimentato).
  6. Il più grande discriminatore di Unity è: è supportato da Microsoft (p & p). Unity ha ottime prestazioni e un'ottima documentazione. È anche altamente configurabile. Non ha tutte le campane e i fischi d'oro di Castle / Structure Map.

Quindi, in sintesi, dipende davvero da cosa è importante per te. Sarei d'accordo con gli altri sull'andare e valutare e vedere quale si adatta. La cosa bella è che hai una buona selezione di ciambelle piuttosto che dover avere una gelatina.

Question

Vale la pena esaminare i quadri dell'iniezione delle dipendenze NET di C # /. NET? E cosa puoi dire sulla loro complessità e velocità.




Ninject è fantastico. Sembra davvero veloce, ma non ho fatto confronti. So che Nate, l'autore, ha fatto alcuni confronti tra Ninject e altri framework DI e sta cercando altri modi per migliorare la velocità di Ninject.

Ho sentito molte persone che rispetto dire cose positive su StructureMap e CastleWindsor. Quelli, nella mia mente, sono i tre grandi da guardare in questo momento.




Spring.Net è abbastanza solido, ma la documentazione ha richiesto un po 'di tempo per passare in rassegna. Autofac è buono, e mentre .Net 2.0 è supportato, hai bisogno di VS 2008 per compilarlo, oppure usa la riga di comando per costruire la tua app.




Sono un grande fan di Castle. Adoro le strutture che fornisce oltre alla storia del contenitore IoC. Semplifica davvero l'uso di NHibernate, logging, AOP, ecc. Uso Binsor per la configurazione con Boo e sono davvero innamorato di Boo come linguaggio a causa di esso.




Il bello di C # è che sta seguendo un percorso battuto da anni di sviluppatori Java prima di esso. Quindi, il mio consiglio, in generale, quando si cercano strumenti di questo tipo, è cercare la risposta Java solida e vedere se esiste ancora un adattamento .NET.

Quindi quando si tratta di DI (e ci sono così tante opzioni là fuori, questa è davvero una questione di gusti) è Spring.Net . Inoltre, è sempre saggio ricercare le persone dietro i progetti. Non ho alcun problema a suggerire prodotti SourceGear per il controllo del codice sorgente (al di fuori del loro utilizzo) perché ho rispetto per Eric Sink. Ho visto Mark Pollack parlare e cosa posso dire, il ragazzo lo capisce.

Alla fine, ci sono molti framework DI e la cosa migliore è fare alcuni progetti di esempio con alcuni di essi e fare una scelta istruita.

In bocca al lupo!




Ho usato Spring.Net in passato e ho avuto un grande successo con esso. Non ho mai notato un sovraccarico sostanziale con esso, anche se il progetto su cui lo abbiamo usato era piuttosto pesante da solo. Ci è voluto solo un po 'di tempo per leggere la documentation per installarla.






Links