8

Estoy trabajando en un proyecto ASP.NET MVC donde hemos decidido utilizar Fluent nHibernate para el acceso a datos. Para habilitar el acoplamiento flojo vamos a un patrón IoC/DI. Mi pregunta es qué herramienta de IoC hay que buscar. He tratado de encontrar las diferencias entre windsor, ninject, spring, structuremap y unity, pero es difícil ver los beneficios que cada uno tiene para ofrecer. ¿Cuál es tu experiencia?ASP.NET MVC + fluente nNibernate, ¿qué herramienta de IoC?

+3

FYI, la próxima vez que haga una pregunta como esta, diga más como: "¿Qué debo buscar en un IoC para jugar bien con ASP.NET MVC + nHibernate con fluidez?" Obtendrás mejores respuestas. –

Respuesta

6

utilizo StructureMap y es muy fácil de usar. Personalmente, no me gusta configurar el uso de xml y StructureMap hace que sea fácil configurar el uso del código. También es muy fácil cambiar de perfil si necesita cambiar las implementaciones.

4

Uso Windsor y no tengo nada de qué quejarme. Fácil de usar, extensible cuando lo necesite y mucha información si se queda atascado. Pero no creo que importe tanto qué contenedor elijas. Todos los que mencionas tienen las características comunes y también hay adaptadores para mvc disponibles en el proyecto mvccontrib. Un cambio a otro contenedor no debería ser difícil si envuelve el contenedor en una clase propia, lo cual es una buena práctica de todos modos.

1

He estado usando Windsor y me encanta. Hay una función incorporada para usar NHibernate que permite una configuración simple de registro y conexiones, etc.

Si planea utilizar FluentNhibernate, debe indicarle a la instalación de Windsor qué ensamblado tiene ConfigurationBuilder. Mike Hadlow tiene un excelente escrito sobre esto y muchos otros sobre Windsor y NHibernate: http://mikehadlow.blogspot.com/2009/01/integrating-fluent-nhibernate-and.html

+0

Fui para windsor y sharp-architecture. Funciona perfecto. También hice algunas pruebas con StructureMap, y no hay grandes diferencias. Al utilizar las mejores prácticas de Microsoft, ServiceLocator, es fácil hacer un cambio más adelante. – bondehagen

0

Uso Munq que es liviano y rápido y es una forma sencilla de agregar un Contenedor DI a los proyectos de MVC3 a través de Nuget. Hasta ahora no he encontrado ninguna necesidad de pasar a un marco diferente: Munq ha sido muy adecuado.

PM> install-package Munq.MVC3 

Esto añade App_Start\MunqMvc3Startup.cs al proyecto, y aquí es donde deben estar registrados dependencias.

Cuestiones relacionadas