Pregunta

¿Qué problemas resuelve MEF (Marco de extensibilidad gestionada) que no pueden resolverse con los contenedores IoC/DI existentes?

¿Fue útil?

Solución

El objetivo principal de MEF es la extensibilidad;para servir como marco de 'complemento' para cuando el autor de la aplicación y el autor del complemento (extensión) son diferentes y no tienen ningún conocimiento particular entre sí más allá de una interfaz publicada (contrato) biblioteca.

Otro espacio de problemas que aborda MEF y que es diferente de los sospechosos habituales de IoC, y uno de los puntos fuertes de MEF, es el descubrimiento [de extensión].Tiene muchos mecanismos de descubrimiento extensibles que operan con metadatos que puede asociar con extensiones.Desde el sitio MEF CodePlex:

"MEF permite etiquetar extensiones con metadatos adicionales, lo que facilita consultas y filtrado enriquecidos"

Combinado con la capacidad de retrasar la carga de extensiones etiquetadas, pudiendo interrogar los metadatos de la extensión. previo La carga abre la puerta a una serie de escenarios interesantes y habilita sustancialmente capacidades como el control de versiones [complementado].

MEF también cuenta con 'Adaptadores de Contrato' que permiten 'adaptar' o 'transformar' extensiones (de tipo > a tipo) con control total sobre los detalles de esas transformaciones.Los adaptadores de contrato abren otro frente creativo en relación con lo que significa y conlleva el "descubrimiento".

Una vez más, la 'intención' de MEF se centra estrechamente en la extensibilidad de complementos anónimos, algo que lo diferencia mucho de otros contenedores de IoC.Entonces, si bien MEF se puede usar para composición, eso es simplemente una pequeña intersección de sus capacidades en relación con otros IoC, con los cuales sospecho que veremos mucha interacción incestuosa en el futuro.

Otros consejos

Los contenedores de IoC se centran en aquellas cosas que usted sabe, es decir,Sé que usaré un registrador en una prueba unitaria y un registrador diferente en mi aplicación.MEF se centra en aquellas cosas que usted no hace, hay entre 1 y n registradores que pueden aparecer en mi sistema.

Scott Hanselman y yo cubrimos este tema con más detalle en los recientes Hansel Minutes.

http://www.hansel Minutes.com/default.aspx?showID=166

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