¿Qué problemas resuelve MEF (Managed Extensibility Framework) que no pueden ser resueltos por los contenedores IoC/DI existentes?MEF (Marco de Extensibilidad Administrada) vs IoC/DI
Respuesta
El propósito principal de MEF es la extensibilidad; para que sirva como un marco 'plug-in' para cuando el autor de la aplicación y el autor del complemento (extensión) son diferentes y no tienen un conocimiento particular entre ellos más allá de una interfaz publicada (contrato) biblioteca .
Otro problema de espacio MEF direcciones que es diferente de los sospechosos habituales de IoC, y uno de los puntos fuertes de MEF, es la [extensión] descubrimiento. Tiene una gran cantidad de mecanismos de descubrimiento extensibles que operan en metadatos que puede asociar con extensiones. Desde el sitio MEF CodePlex:
"MEF permite extensiones de marcado con metadatos additonal que facilita rica consulta y filtrando"
combinado con una capacidad de retrasar la carga etiquetada extensiones, siendo capaz de interrogar metadatos extensión antes para la carga abre la puerta a una gran cantidad de escenarios interesantes y permite sustancialmente capacidades como el control de versiones [plug-in].
MEF también tiene 'Adaptadores de contrato' que permiten que las extensiones se 'adapten' o 'transformen' (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 'descubrimiento' y lo que implica.
Una vez más, la "intención" de los MEF está muy centrada en la extensibilidad anónima del complemento, algo que lo diferencia mucho de otros contenedores IoC. Entonces, aunque MEF se puede usar para la composición, eso es simplemente una pequeña intersección de sus capacidades en relación con otros IoC, con lo que sospecho que veremos una gran interacción incestuosa en el futuro.
Los contenedores IoC se centran en esas cosas que usted conoce, es decir, sé que usaré un registrador en una Prueba de unidad y un registrador diferente en mi aplicación. MEF se enfoca en las cosas que usted no hace, hay de 1 a n loggers que pueden aparecer en mi sistema.
Scott Hanselman y yo cubrimos este tema con más detalle en los últimos minutos de hansel.
- 1. ¿El MEF (Framework de extensibilidad administrada) "tipa" el tipado?
- 2. ¿Qué es el Marco de Extensibilidad Administrado (MEF)?
- 3. ¿Hacia dónde se dirige el Framework de extensibilidad para .NET?
- 4. ¿Es MEF un marco de inyección de dependencia?
- 5. MEF vs Mono.AddIn
- 6. Visual Studio 2010 MEF vs. MPF?
- 7. ¿Es MEF un reemplazo para System.Addin?
- 8. MEF con ImportMany y ExportMetadata
- 9. VS extensibilidad Arquitectura (API Paquete/Biblioteca Visual Studio)
- 10. Django vs PHP + marco
- 11. ¿Utiliza MEF para importar un WPF DataTemplate?
- 12. Envoltura administrada con interfaz no administrada
- 13. EJB 3.1 concurrencia administrada por contenedor vs. sincronizada
- 14. Usando MEF como IoC
- 15. .NET - Copiar de matriz no administrada a matriz no administrada
- 16. ¿Cómo funciona el Catálogo de MEF de MEF?
- 17. Configuración MEF
- 18. MEF: DirectoryPartCatalog
- 19. Telerik Marco Prueba Libre vs selenio
- 20. asp.net mvc modelos vs entidad marco modelos
- 21. entidad marco 4.1 ObjectContext vs dbContext
- 22. QTP extensibilidad Web toolkit y ajax
- 23. Agregación COM administrada
- 24. SEHException no fue administrada
- 25. Versión administrada de Spy ++ Tool?
- 26. Fuga de memoria no administrada
- 27. Extensibilidad de Visual Studio 2010 - Asistente de plantilla de proyecto personalizado
- 28. MEF y DirectoryCatalog
- 29. MEF + WCF ¿Servicio Host?
- 30. MEF Constructor Injection
que tenga una muy distinta elección de las palabras. –