2009-12-02 33 views
24

Estoy usando el contenedor Unity IoC. Realmente no fue una decisión que tomé, solo vino con Prism, y simplemente me he quedado con ella. Nunca utilicé ningún otro framework de IoC, y debo admitir que estoy bastante contento con Unity. Sin embargo, la satisfacción puede provenir de la ignorancia, ya que realmente no sé lo que los otros marcos tienen para ofrecer.¿Por qué no debería usar Unity?

Sigo escuchando que no debería usar el contenedor Unity IoC. "Use Castle, nInject o StructureMap en su lugar", la gente dice, pero todavía no he escuchado ningún argumento concreto o ejemplos de por qué debería utilizar un marco diferente. Entonces, ¿por qué no debería usar Unity? O tal vez debería?

+3

La respuesta aceptada a esta pregunta stackoverflow (http://stackoverflow.com/questions/411660/enterprise-library-unity-vs-other-ioc-containers) se convirtió en una publicación de blog realmente detallada (aquí, http: // elegantcode.com/2009/01/07/ioc-libraries-compared/) que pueden ser útiles. –

+0

¡De hecho, muy útil! De alguna manera me he perdido esta pregunta cuando busco las existentes sobre el tema. ¡Gracias! – stiank81

Respuesta

14

Estos contenedores tienden a ser aproximadamente gusto, más que nada. Ninject tiene una interfaz fluida para configurarlo, pero a algunas personas les gusta la capacidad de Unity para configurarse a través de config (masoquistas, creo), así como de código.

Yo, al igual que usted, tenía estas preguntas al adoptar Prism, así que hice el ejercicio de reemplazar Unity con Ninject y Autofac. No encontré ninguna razón convincente en términos de rendimiento o características para seguir con Unity. Hay ciertas cosas que fueron agradables en ambos, pero todas hicieron básicamente lo mismo y lo hicieron bien.

Me gustaría ver las características, el estilo y la sintaxis de cada uno y decidir cuál le gusta más. Esa es realmente la única diferencia ... cómo se siente. En general, existen algunas diferencias de características principales, pero la probabilidad de que las necesite es bastante pequeña.

Publique una actualización acerca de lo que decida ... Siempre me interesan los hallazgos del mundo real de las personas frente a lo que los usuarios apasionados defienden.

+4

Hicimos algunas investigaciones, pero no encontramos ninguna buena razón para no usar Unity por el momento. Entonces, la conclusión es: "Si no está roto, no lo arregles", me quedaré con Unity. Es posible cambiar esto más tarde de todos modos si surge una crisis. Si tuviera que cambiar, iría con StructureMap. ¡Gracias por su respuesta! – stiank81

12

Una razón para usar Unity es si necesita trabajar en un entorno de confianza medio. Por lo que he encontrado, la unidad parece mucho más fácil de ejecutar si tu código no tiene plena confianza. He usado algunos contenedores de IoC y uso Unity cuando necesito una confianza mediana.

+2

+1 - ¡gracias por el aviso! –

+0

Parece que ya no se admite la confianza parcial para Unity. http://msdn.microsoft.com/en-us/library/dd203232.aspx –

Cuestiones relacionadas