.NET - ¿Qué marco de Contenedor de IoC recomendaría a un principiante en esta área? [cerrado]

StackOverflow https://stackoverflow.com/questions/304218

Pregunta

¿Qué marco de inversión de Control Container recomendaría a un principiante en esta área?

¿Fue útil?

Solución

James Kovacs realizó un dnrtv screencast donde muestra cómo crear su propio contenedor de COI. Se lo recomiendo a un principiante no porque sea necesariamente el que desea usar, sino porque muestra los conceptos básicos de por qué necesita un contenedor IOC y cuál es la funcionalidad básica. Después de esto, intente pasar a Castle Windsor o Mapa de estructura .

Otros consejos

Autofac.

Ligero, simple, rápido, orientado a C # 3.0 y funciona (para mí) mejor en proyectos complejos que cualquier otro IoC Container (incluso Windsor).

Características principales:

  • Eliminación determinista de componentes
  • Configuración basada en expresiones
  • Soporte adecuado para la resolución de componentes de alcance múltiple
  • Alto rendimiento
  • Lean codebase

Recuerdo que hay algunos tutoriales de BitterCoder en Castle's Windsor que encontré útil y fácil de seguir.

Incluso si decide usar Windsor o no, esos recorridos deberían darle una buena idea de los tipos de características / funcionalidades que se esperan de otros contenedores.

Hay un gran libro publicado por Mark Seemann llamado Inyección de dependencia en .Net . La última mitad del libro cubre 6 marcos populares con suficiente detalle para tener una idea de ellos. Vale la pena echarle un vistazo para ayudar a una nueva persona a decidir. También cubre la inyección de dependencia de los pobres para aquellos que no están listos para probar un contenedor, pero quieren al menos escribir su aplicación de manera que pueda convertirse fácilmente para usar un contenedor de IoC.

Los contenedores que cubre son:

Danial Cazzulino tiene un grupo (¿scrunch?) de screencasts al crear el Funq DI Container. Funq es liviano y rápido, pero carece de algunas de las campanas y silbatos de los marcos más grandes y más establecidos.

Utilizo el Munq derivado de Funq, que también es ligero y rápido, y es una forma sencilla de agregar un DI Container para proyectos MVC3 a través de Nuget. Hasta ahora no he encontrado la necesidad de pasar a un marco diferente: Munq ha sido muy adecuado.

He realizado alguna evaluación del puerto Spring.NET . Ofrece AOP, configuración del archivo de configuración del contenedor y otras cosas interesantes. Creo que su sitio está bien organizado y los documentos están bien escritos.

Yo diría StructureMap. Es uno de los marcos más maduros y realmente fácil de usar. Además, puede integrarse bien con NMock para crear objetos simulados que son invaluables para las pruebas unitarias. El marco admitido por Microsoft es Unity, por lo que también puede consultarlo.

Estoy de acuerdo con dp. El autor de ese screencast incluso dice que debes rodar tu. Esto es para que sepa cómo funcionan. Luego, una vez que tenga eso abajo, puede pasar al más completo.

También se ha mencionado que realmente no existe ese 'contenedor de un COI para gobernarlos a todos'. Esto se debe a que casi todos tienen las mismas características. Todo se reduce a qué implementación favoreces. Por ejemplo, si está utilizando Enterprise Library Framework, entonces puede favorecer el contenedor de Unity porque obtiene vínculos gratuitos con el resto de EntLib. O tal vez eres alérgico al XML, entonces puedes usar Ninject, que tiene una interfaz fluida muy agradable. Cada marco tiene sus fortalezas y debilidades, pero serán prácticamente las mismas desde el punto de vista de los principiantes.

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