Pregunta

¿Qué COI durante el desarrollo del proyecto de aplicación Web ASP.NET y cuáles son las ventajas de los diferentes COI?

  1. ObjectBuilder
  2. Unidad
  3. Spring.NET
¿Fue útil?

Solución

No está en su lista, pero considerar la búsqueda en castillo de Windsor

Número de instalaciones como el apoyo a fábricas de modo que el producto de la fábrica no se inyecta la propia fábrica o la MFA para la inyección de un proxy o la creación de un huésped con dependencias.

Tiene una interfaz fluida agradable para el cableado de los elementos individuales, pero preferiblemente se usaría una convención para auto del alambre de modo que usted no tiene que enumerar cada componente.

Algunas otras características interesantes:

  • Requiere un solo archivo DLL desde nueva revisión.
  • Apoyos inyectables listas y matrices a través de resolución de SubDependancy

Aquí es una encuesta realizada este año mostrando el COI favorecida. La unidad parece ser superior, pero que es probablemente debido a que es un producto de Microsoft y talleres de Microsoft lo recogerá de forma predeterminada.

Otros consejos

StructureMap en un proyecto ASP.NET MVC y hemos encontrado que es increíblemente útil. El único inconveniente es la escasa documentación. La auto-cableado funciona muy bien y que requiere muy poca configuración si utiliza las convenciones fuertes para asignar nombres a las clases e interfaces, por ejemplo:.

 public interface ISomething { ... }

 public class Something: ISomething { ... }

Antes de que utilizamos Spring.NET, a pesar de que ditched que debido a que hace un montón de otras cosas (no-COI) que realmente no necesitamos y requerimos de configuración XML complejo para hacer lo que necesitábamos. Como un contenedor de IoC funcionó bien sin embargo y era muy flexible.

La clave me gustaría recomendar lo que usted elige es la codificación para permitir el uso de la COI - utilizamos interfaces de todo el lugar. Esto realmente hace las pruebas unitarias ayuda y todos los beneficios que trae también.

Las cosas Unidad en MVC3 Cómo se ve interesante también, pero no tuvo la oportunidad de jugar con él todavía.

I doubt many people have used more than two or three of these, and in my quite limited experience with Unity and Ninject there isn't that much difference in the end result. They have slightly different options for configuring the mappings, and I'm sure some of the more advanced features differ but these are probably rarely used. At the end of the day the core requirements for an IoC container aren't that complicated - you could quite easily roll your own.

Far more important is that you are using an IoC pattern, which particular brand you choose probably has no significant impact on the quality of the resulting application.

For what it's worth I'd recommend Ninject if only because it is very lightweight.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top