patrones patron inyeccion diseño dependencias .net unity-container mef

.net - patron - ¿MEF es un marco de inyección de dependencia?



patron de inyeccion de dependencias c# (4)

Específicamente tratado en el PDC 2008 2nd Keynote por Scott Guthrie, MEF tiene mucho más que ver con cosas como extender Visual Studio 2008 y otras aplicaciones, sin tener que usar todas las tecnologías COM y antiguas ... Una muy buena demostración de extender el la edición de texto en VS2008 se mostró entre otras cosas. Comience alrededor de una hora y 15 minutos en la nota clave del segundo día ( http://www.microsoftpdc.com ) y obtendrá información directa, pero básicamente, si va a "crear una aplicación con puntos de extensibilidad integrados que puedan fácilmente ser descubierto, y que admite el descubrimiento de extensiones, "entonces MEF es lo que quieres. UNITY es lo que desea para un contenedor IoC de alta calidad que hace DI y otras soluciones, pero tiene una gran y fácil integración con Enterprise Library.

En cuanto a Unity en el EL4.0 (ahora 4.1 - http://msdn.microsoft.com/en-us/library/dd203099.aspx ) es en realidad un IoC que se encuentra en la parte superior de la versión 2 ObjectBuilder y el EL4.1 tiene puntos de extensibilidad para unificar la configuración de varios bloques de aplicaciones EL con Unity.

MEF vs. Unity es como comparar manzanas con naranjas. Aquí hay algunos podcasts / webcast geniales y específicos que describen UNITY en su totalidad, que recomiendo encarecidamente:

DotNetRocks Show # 393 http://www.dotnetrocks.com/default.aspx?showNum=393 DNR.tv Show # 126 http://www.dnrtv.com/default.aspx?showNum=126

El marco de extensibilidad gestionado recientemente anunciado (MEF) de .NET 4.0: ¿es un marco de inyección de dependencia? ¿Microsoft Unity de Patterns and Practices estará obsoleto en 4.0? ¿Cómo se compara MEF con un marco como Unity?


Vi uno escribir que lo hizo sonar como uno pero más información ( Scott Guthrie en PDC2008 [Video / wmv]) me hizo pensar que es más que un marco de inyección de dependencia. A partir de los sonidos de las cosas , puede usarse para la inyección de dependencia pero también hace más.



Me gustaría añadir una línea mopre que acabo de leer que MEF no es parte de Inversion of Control (ya que dependecny se dice que es sinónimo de IOC) pero lo implementa . Cuando implementamos IOC a través de inyecciones de dependencia generalmente utilizamos Unity, que ayuda a descubrir dependencias estáticas, pero MEF nos permite aumentar la extensibilidad de nuestra aplicación sin configurar los componentes de manera estática, incluso se pueden descubrir en tiempo de ejecución. También hay otros enlaces que pueden ayudarte más: Diferencia entre Unity y MEF