2008-09-19 12 views

Respuesta

9

depende de la situación. Para proyectos pequeños donde necesitas un contenedor simple elegiría Ninject. Me gusta el hecho de que es pequeño y delgado. No me gusta el atributo, pero hay formas de evitarlo.

Para una gran solución en la que puedas necesitar algo más que IoC iría con las cosas de Castle. Hay mucha flexibilidad allí, puede usar xml, atributos o un DSL para configurar cosas, puede expandir su IoC en territorio AOP si lo necesita más adelante.

Aún no he probado structuremap. Parece que hace mucho más que IoC. Pero no puedo comentar sobre eso. Creo que Ninject y Structuremap tienen diferentes propósitos, por lo que es difícil elegir entre los dos sin saber un poco más sobre el contexto. Mejor es generalmente un concepto relativo :-)

3

Uso StructureMap, así que probablemente creo que es el mejor. Pero quizás en el futuro apostaría por la Unidad ya que es compatible con MS, lo que significa una mejor documentación y menos dependiente de la buena voluntad de una persona, aunque esa persona es muy buena. Por supuesto, no cambiaré de marco solo porque sea agradable. Mientras algo funcione, ni siquiera actualizo.

+2

Tengo problemas para encontrar documentación para Unity. ¿Podría alguien proporcionar un enlace? – StriplingWarrior

+0

Personalmente, me ha resultado difícil trabajar con Unity debido a la falta de documentación (incluida la documentación XML, de la memoria) y de alta complejidad. No creo que el razonamiento "compatible con Microsoft" sea un buen razonamiento. – Sam

3

No hay mejor opción. La mayoría de ellos hace el 90% de lo que necesita de la misma manera. En ciertas situaciones, uno podría ser más flexible que otro.

Dada la opción, elegiría Windsor, si nada más, pero ya lo sé bastante bien. Pero no me quejaría si tuviera que usar Ninject o StructureMap. Ambos son buenos marcos.

Sé que actualmente Ninject es el único que se ejecutará en el marco compacto, así que si eso es una necesidad. entonces Ninject es el camino a seguir.

Tengo un poco de miedo de Spring.NET, sobre todo porque aborrezco XML. Pero tal vez no es tan malo como creo, no me llame :)

2

Voy a través de este proceso yo mismo. Recomendaría comenzar con ninject. Solo porque es muy liviano y tiene un nivel de entrada muy bajo. Puedes tenerlo funcionando en cuestión de horas.

Lo que encontrará es que diseñará su sistema con IoC en mente y que el diseño será prácticamente el mismo independientemente del marco de trabajo de IoC que utilice.

Sin demasiada repetición de trabajo después de la instalación básica del sistema, debería poder cambiar NInject por algo como StructureMap si lo desea.

Su mejor opción es seguir adelante con uno y ver qué problemas encuentra y luego decidir si una alternativa se adecuaría mejor a sus necesidades.

Parece que los frameworks están pasando por un período dinámico con nuevas versiones lanzadas por todos lados. Y MEF, que es IoC y mucho más, puede forzar un mayor cambio del paisaje.

2

autofac es una buena opción para proyectos pequeños. Si quieres Hardcore integración COI + con lo que se puede imaginar, me gustaría recomendar Spring.NET

EDITAR Ahora que lo pienso, autofac rocas para proyectos de cualquier tamaño, mientras que Spring.NET siente demasiado enterprisey.

Cuestiones relacionadas