Un problema con la gran cantidad de productos y tecnologías lanzados por Microsoft en los últimos años es que, en medio de la sopa de letras, pueden pasar relativamente desapercibidos algunas herramientas excepcionales. Tomemos, por ejemplo, el caso de MEF. La siglas abrevian el nombre de Managed Extensibility Framework, una biblioteca para el diseño de aplicaciones descrita en este artículo de MSDN.
Haciendo la analogía con un juguete de mi infancia, el Meccano, con MEF uno puede crear clases que son exportadas como componentes utilizables en diversas partes de la aplicación. El sistema es entonces construido al ensamblar las piezas. Una ventaja de ver el programa como un ensamblado de piezas, es la extrema flexibilidad de reorganizar o hasta usarlas en formas no anticipadas. La idea no es nueva, pero lo que MEF logra es hacer el proceso increíblemente fácil. Lo que es más, MEF se encarga de crear y destruir objetos según sea necesario, liberando al programador no sólo de esa responsabilidad, sino que también de tener que llevar cuenta de dónde están o cuáles son sus dependencias.
Jeremy Likness es un miembro de la comunidad Silverlight quien ha escrito extensamente sobre el tema. En uno de sus artículos cita diez razones por las considera MEF como una herramienta esencial en su trabajo:
- Viene incluida en .NET 4.0
- Permite implementar los patrones de inyección de dependencia e inversión de control
- Automáticamente administra la vida útil de los objetos en la aplicación
- Facilita el uso se valores globales de configuración
- Introduce el concepto de creadores o fábricas de objetos
- Facilita la implementación del patrón de cadena de operaciones
- Permite el uso de atributos verificados por el compilador
- Es extensible
- Ayuda a crear aplicaciones modulares
- Es personalizable
Tal como Jeremy menciona, las razones puede que no sean las más importantes o categóricas, pero son las que lo han convencido a usar MEF en prácticamente todas las aplicaciones que escribe. Para más detalles, los invito a leer el artículo completo, disponible en español.
El artículo de Glenn Block en MSDN citado arriba provee una excelente introducción a MEF, y también está en español. Otros artículos relativos al tema y su uso con Silverlight disponibles son Diseño de aplicaciones en Silverlight 4 usando Servicios RIA, MEF y MVVM y Usando MEF en vez de PRISM en Silverlight.

1 comment
Keoz says:
Oct 20, 2010
Pero Prism v4 ya es compatible con MEF
ya no hay que elegir entre uno y otro