2008-11-15 8 views
32

El marco de extensibilidad administrado 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?¿Es MEF un marco de inyección de dependencia?

+0

[Esta pregunta] (http://stackoverflow.com/questions/42251/whither-managed-extensibility-framework-for-net) podría ser de interés para ti –

Respuesta

27

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 la extensión de la edición de texto en VS2008 se mostró entre otras cosas. Comienza aproximadamente una hora y 15 minutos en la nota clave del segundo día (http://www.microsoftpdc.com) y obtendrás información directa, pero básicamente si vas a "crear una aplicación con puntos de extensibilidad integrados que puedan descubrirse fácilmente y que sea compatible con 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 realmente un IoC que se encuentra sobre 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. Una gran y específica de podcast/transmisión (s) que describen la UNIDAD en su totalidad están aquí, que recomiendo encarecidamente:

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

+10

¿Pero por qué querría usar Unity cuando tengo MEF? – bitbonk

1

Vi uno escribir que lo hizo sonar como uno pero más información (Scott Guthrie at PDC2008 [Video/wmv]) me hizo pensar que es más que un marco de inyección de dependencia. Desde sounds of things puede usarse para inyección de dependencia pero también más.

0

Me gustaría agregar una línea mopre que acabo de leer que MEF no forma parte de Inversion of Control (como 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 forma estática, incluso se pueden descubrir en tiempo de ejecución. Hay otros enlaces, así que puede ayudar más: Difference between Unity and MEF

+1

No estoy seguro de que esta respuesta sea del todo coherente –

Cuestiones relacionadas