2009-05-22 17 views
5

Actualmente estamos analizando el uso de CAB o MEF para nuestra próxima aplicación. No vi ningún ejemplo en codeplex de cómo se maneja la intermediación de eventos para la comunicación de control entre hermanos, tal vez me lo perdí. ¿Cómo funciona la comunicación intercontrolada en el MEF?Managed Extensibility Framework (MEF) frente a Composite UI Application Block (CAB)

Además, estamos planeando utilizar Infragistics que ha proporcionado componentes adicionales para el marco CAB. ¿Qué tan bien se integrarán los controles de Infragistics en MEF?

En general, ¿vale la pena el MEF para una aplicación decentemente grande, 15,000 horas de desarrollo estricto?

Respuesta

8

Puedo estar equivocado, pero no creo que MEF tenga ningún evento de intermediación. Es un motor de composición general similar a los contenedores de ioc pero destinado a una solución más general de plug-in y extensibilidad de aplicaciones. CAB y Prism, por otro lado, son marcos de interfaz de usuario que permiten aplicaciones compuestas que se componen de componentes de interfaz de usuario. Como es muy probable que los componentes de la interfaz de usuario necesiten comunicarse entre sí y responder a las actividades de otros componentes de la interfaz de usuario, el marco subyacente debe proporcionar un mecanismo para el evento (pub/sub) entre los componentes de la interfaz de usuario.

6

Si está utilizando MEF con WPF y el patrón MVVM, sus piezas suelen exportar clases de ViewModel y clases de vista (por ejemplo, plantillas de datos, etc.). Su Vista se vincula al ViewModel y utiliza propiedades y comandos de dependencia para comunicarse de ida y vuelta. Por lo tanto, si la Parte A necesita comunicarse con la Parte B, entonces la Parte A puede Importar una referencia a ViewModel de la Parte B y pueden hacer llamadas de método hacia adelante y hacia atrás. La Parte A también puede registrar manejadores de eventos para eventos de la Parte B, etc.

2

estoy de acuerdo con Scott. El modelo pub/sub "genérico" parece interesante, pero rara vez lo he necesitado. Si quiero un mensaje desacoplado, con MEF simplemente defino un IMessage de contrato y luego exporto una implementación, luego importo donde sea que lo necesite. Si es un mensaje fuertemente tipado, importaré la parte exacta con la que necesito hablar y la enviaré directamente.

Cuestiones relacionadas