Pregunta

Es absolutamente necesario utilizar un contenedor de IoC para desacoplar dependencias en un sistema de servicios empresariales cada vez más complejo.El problema al que me enfrento está relacionado con la configuración (también conocido comoregistro).Actualmente tenemos 4 entornos diferentes: desde desarrollo hasta producción y en el medio.Estos entornos tienen numerosas configuraciones que varían ligeramente de un entorno a otro;sin embargo, en todos los casos que Actualmente puedo pensar en, las dependencias entre componentes no difieren de un entorno a otro, aunque podría haberme perdido algo y/o esto obviamente podría cambiar.

Entonces, la pregunta fundamental es: ¿alguien tiene una experiencia similar utilizando un marco de IoC?¿O puede alguien recomendar un marco sobre otro que proporcione un registro flexible, ya sea a través de algún tipo de convención o información de configuración simplificada?¿Aún podré beneficiarme de una interfaz fluida o estoy atascado con XML? Me gustaría evitar el infierno de XML.

Editar: Este es un entorno .Net y he estado analizando Windsor, Ninject y Autofac.Todos parecen admitir ahora ambos métodos de registro (fluido y XML), aunque el soporte de Autofac para expresiones lambda parece ser un poco diferente al de los demás.¿Alguien usa eso en un entorno de implementación múltiple similar?

¿Fue útil?

Solución

yo suelo Ninject.Me gusta el hecho de que no tengo que usar Xml para configurar las dependencias.Puedo usar código C# directo.Hay múltiples maneras de hacerlo también.Sé que otras bibliotecas tienen esa característica, pero Ninject ofrece creación de instancias rápida, es bastante liviano, tiene enlace condicional, admite un marco compacto y es compatible con Silverlight, 2.0.También uso un contenedor encima, en caso de que lo cambie por otro marco en el futuro.Definitivamente deberías probar Ninject al decidir sobre un marco.

Otros consejos

Si desea abstraer su contenedor y poder usar otros diferentes, considere tenerlo inyectable de la manera que intenté hacerlo. aquí

No estoy seguro de si se adaptará a tu caso particular, no mencionaste en qué plataforma estás trabajando, pero he tenido un gran éxito con Marco del COI del Castillo de Windsor.Las dependencias se configuran en el archivo de configuración (es un marco .NET)

Mire los bienes comunes de los rinocerontes de Ayendes.Utiliza una abstracción sobre el contenedor de IoC.Para que puedas cambiar de contenedor cuando quieras.Algo así como contenedor. Resolve siempre está ahí en cada contenedor.

Utilizo Structuremap para hacer el trabajo sucio, tiene una interfaz fluida y elementos XML y es lo suficientemente potente para la mayoría de las cosas que quieres hacer.Cada uno tiene sus pros y sus contras, por lo que un poco de abstracción para que puedas cambiar fácilmente (nunca se sabe cuánto tiempo estarán disponibles) es bueno.Por lo demás, creo que Spring.Net, Castle Windsor, Ninject y StructureMap ya no están tan lejos.

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