ver también Which C#/.NET Dependency Injection frameworks are worth looking into?¿Qué debo considerar al elegir un marco de inyección de dependencias para .NET
Ahora hay muchas dependencyinjection marcos para elegir. A menudo solía verse obligado a utilizar un marco de inyección de dependencia determinado debido a una biblioteca que estaba utilizando. Sin embargo, el Common Service Locator library ha permitido que el código de la biblioteca sea independiente de los marcos de inyección.
El tiempo que toma aprenderlos a todos lo suficiente como para decidir cuál usar no es razonable. No creo que hayamos llegado a una etapa en la que podamos hablar sobre el mejor marco de inyección de dependencias. Entonces, ¿qué preguntas debería hacer sobre el proyecto y sobre mí mismo para ayudar a decidir cuál es el mejor marco de inyección de dependencia para usar en un caso determinado?
También sería útil saber por qué elige el marco de inyección de dependencia que está utilizando actualmente y si todavía está contento con eso.
¿Todavía hay un vocabulario útil para usar al comparar los estilos de marcos de inyección de dependencia?
¿Funciona la biblioteca de Localizador de servicios en la vida real, o tiene la habilidad de utilizar muchos marcos de inyección de dependencia diferentes en el mismo proyecto?
¿Cuán fácil es refractar su código con cada Marco de inyección de dependencia, por ejemplo, herramientas como ReSharper funcionan bien con un marco determinado?
que tenía la respuesta frente a # 4, tuve el jadeo "no es de código abierto". – Chris
¿De verdad? Wow eso es impresionante. Luché esa batalla por mucho tiempo. No creería las tratos clandestinos que tuve que hacer para obtener NHibernate aquí ;-) –
# 1 es una consideración válida, pero la disponibilidad del soporte no siempre es una función del tamaño de la base de usuarios, y a veces es lo contrario. P.ej. para Autofac: tenemos uno de los foros de usuarios más receptivos y útiles en la red :) Otras opciones menos convencionales, (por ejemplo, Ninject) también parecen tener un excelente soporte. –