vedi anche Which C#/.NET Dependency Injection frameworks are worth looking into?Che cosa devo considerare quando si sceglie un quadro di iniezione di dipendenza per NET
Ora ci sono molti dependencyinjection quadri tra cui scegliere. Spesso si è costretti a utilizzare un dato framework di iniezione delle dipendenze a causa di una libreria che si stava utilizzando. Tuttavia, Common Service Locator library ha abilitato il codice della libreria per essere indipendente dai framework di iniezione.
Il tempo necessario per apprenderli tutti abbastanza bene da decidere quale usare è irragionevole. Non credo che abbiamo ancora raggiunto un punto in cui possiamo parlare della migliore struttura di iniezione delle dipendenze. Quindi quali domande dovrei porre riguardo al progetto e io stesso per aiutare a decidere sulla migliore struttura di iniezione delle dipendenze da utilizzare in un determinato caso?
Sarebbe anche utile sapere perché si sceglie il framework di iniezione delle dipendenze attualmente in uso e se si è ancora soddisfatti di tale scelta.
Esiste ancora un vocabolario utile da utilizzare quando si confrontano gli stili dei framework di dipendenza delle dipendenze?
La libreria Service Locator funziona nella vita reale o si è costretti a utilizzare molti framework di dipendenze diverse nello stesso progetto?
Quanto è facile rifrattore il codice con ogni Dipendenza Injection Framework, ad esempio strumenti come ReSharper funzionano bene con un dato framework?
ho avuto la risposta opposta a # 4, ho avuto il sussulto, "non è open source". – Chris
Davvero? Wow, è fantastico. Ho combattuto quella battaglia per molto tempo. Non crederesti alle offerte subdole che dovevo fare per ottenere NHibernate qui ;-) –
# 1 è una considerazione valida, ma la disponibilità di supporto non è sempre una funzione della dimensione della base utente, ed è talvolta l'opposto. Per esempio. per Autofac - abbiamo uno dei forum di utenti più reattivi e utili sulla rete :) Altre opzioni meno mainstream (ad esempio, Ninject) hanno anche un eccellente supporto. –