Es correcto. MEF es una especie de contenedor IoC pero más enfocado a ensamblar 
o extender aplicaciones a partir de componentes (o "partes" en lenguaje MEF). 
Pero los elementos de una UI son a su vez componentes y por lo tanto también 
pueden ser administrados usando MEF. De hecho, uno de las aplicaciones de 
ejemplo en la versión más reciente es una IDE que imita a Visual Studio y  
"hostea" todas las ventanas de su interfaz a través de MEF. Además permite 
extender la aplicación y agregar nuevos designers, controles y comandos 
simplemente copiando al directorio de la aplicación los assemblies que 
implementan estas extensiones. No es necesario registrarlas. 

De cualquier forma, MEF no reemplaza al Smart Client Software Factory (o al 
CAB), ni tampoco apunta a implementar algún patrón en particular, así que bien 
se podría usar ambos en una aplicación. MEF solo resuelve el problema de 
extensibilidad y composición (y es mucho más simple).

A propósito, Visual Studio 2010 hace uso de MEF para permitir extensiones al 
editor. 

Saludos,

Fernando Tubio

  ----- Original Message ----- 
  From: Leandro Tuttini 
  To: puntonet@mug.org.ar 
  Sent: Thursday, May 14, 2009 5:22 PM
  Subject: [puntonet] Aplicacion dinamica configurable



        Fernando, que tal.

        Tenia conocimiento de este framework pero descarte porque pense que 
estaba orientado mas que nada a extender aplicaciones en su logica de 
componentes, y solo en esta, o sea mas a lo que un IoC esta orientado, pero por 
supuesto mas extensible.

        Lo que no sabia era si este resuleve el tema de UI, sabes si tambien 
permite extender y generar catalogos de UI ?

        En SmartClient App Block lo que tienes son vistas, que hacen uso del 
patron MVC para trabajar. O sea lo que usas generalmente para desarrollar las 
vistas son UserControl, los cuales se dentro de controles del tipo workspace, 
pudiendo definir layout, esto por supuesto se cargan de forma dinamica, segun 
la configuracion dada al shell.


        Todos estos temas sabes si los maneja MEF, no digo que lo haga de la 
misma forma, pero los tiene en cuenta ?

        O sea MEF estari pensado para trabajar solo, o por ahi es mejor que 
trabaje en conjunto con SmartClient para resolver la parte grafica.

        Resumen de la pregunta, esta MEF orientado a la UI, ademas que a la 
logica de negocio ?


        saludos


        --- El jue 14-may-09, Fernando Tubio <ftn...@ic4life.net> escribió:


          De: Fernando Tubio <ftn...@ic4life.net>
          Asunto: [puntonet] Aplicacion dinamica configurable
          Para: puntonet@mug.org.ar
          Fecha: jueves, 14 de mayo de 2009, 3:04 pm


          Te recomiendo investigar Managed Extensibility Framework (MEF). Esta 
librería será eventualmente parte de .NET 4.0, pero por ahora se puede 
encontrar en Codeplex [1]. Algunas descripciones [2, 3] para ver de que se 
trata.

          [1] http://www.codeplex.com/MEF
          [2] 
http://www.sidarok.com/web/blog/content/2008/09/26/what-is-this-managed-extensibility-framework-thing-all-about.html
          [3] 
http://ayende.com/Blog/archive/2008/09/25/the-managed-extensibility-framework.aspx

          Saludos,

          Fernando Tubio

            ----- Original Message ----- 
            From: Federico Lazarte 
            To: puntonet@mug.org.ar 
            Sent: Thursday, May 14, 2009 10:58 AM
            Subject: [puntonet] Aplicacion dinamica configurable


            Gente.
            Tengo el siguiente escenario:
            Una aplicación que empezo siendo una demo, se convirtio en un 
producto complejo y dificil de mantener. La idea ahora es rediseñarlo, y que 
todo sea altamente configurable.
            Por ejemplo:
            El sistema cuenta con varios modulos.
            A modulo principal.
            B modulo secundario 1
            C modulo secundario 2
            D modulo sub-secundario que depende de modulo 2.
            E modulo sub-secundario que depende de modulo 2.

            Lo que se quiere es que el aplicativo cuando se ejecute y de 
acuerdo a un xml de configuración, carge los componentes que deba utilizar.
            Por ejemplo, para un cliente en particular, se necesita solo el 
modulo A, C y el módulo E.
            Se va a usar reflection para esto, aunque los problemas son los 
eventos, por ejemplo, el modulo C se subscribe a los eventos del módulo E que 
son incompatibles con los eventos del modulo D.
            Bueno espero haber sido claro.
            Me gustaria tener ideas de que conceptos aplicar, patrones y demas. 
Luego, yo investigo por cuenta propia.
            Gracias.

--------------------------------------------------------------------
            ¿Querés conocerte mejor? ¡Conocé lo que Windows Live tiene 
especialmente para vos!  


------------------------------------------------------------------------------

  Yahoo! Cocina
  Recetas prácticas y comida saludable
  Visitá http://ar.mujer.yahoo.com/cocina/

Responder a