2009-03-31 10 views
9

Estoy desarrollando una aplicación de negocios WPF en mi cabeza y una cosa que despertó mi interés fue cómo debería manejarlo haciéndolo increíblemente modular. Por ejemplo, mi aplicación principal simplemente contendría lo básico para iniciar la interfaz, cargar los módulos, conectarse al servidor, etc. Estos módulos, en forma de bibliotecas de clase, contendrían su propia lógica y ventanas de WPF. Los módulos podrían definir sus propios diccionarios de recursos y todos extraer del diccionario de recursos de la aplicación principal para cepillos comunes y similares.¿Construir una aplicación comercial altamente modular con WPF?

¿Cuál es la mejor manera de implementar un sistema de esta naturaleza? ¿Cómo debería construirse la interfaz principal para que los módulos que carga puedan alterar virtualmente cualquier aspecto de su interfaz de usuario y lógica?

Me doy cuenta de que es una pregunta bastante vaga, pero simplemente estoy buscando aportaciones generales y lluvia de ideas.

Gracias!

Respuesta

8

Salida Composite Client Application Guidance

La biblioteca de aplicaciones compuestas está diseñada para ayudar a los arquitectos y desarrolladores de lograr los siguientes objetivos:

Crear una aplicación compleja a partir de módulos que se pueden construir, ensamblados, y, opcionalmente, desplegadas por equipos independientes que usan WPF o Silverlight.

Minimice las dependencias entre equipos y permita que los equipos se especialicen en diferentes áreas, como el diseño de la interfaz de usuario (UI), la implementación de lógica de negocios y el desarrollo de código de infraestructura.

Utilice una arquitectura que promueva la reutilización en equipos independientes.

Aumente la calidad de las aplicaciones mediante la abstracción de los servicios comunes que están disponibles para todos los equipos.

Integrar nuevas capacidades de forma incremental.

1

Tenga una mirada en Prism

+0

Prism IS es la "Guía de aplicación de cliente compuesto" mencionada por Gulzar –

+0

Denis: Ambas respuestas se publicaron casi al mismo tiempo. –

2

En primer lugar usted puede estar interesado en SharpDevelop aplicación. Se basa en su propio sistema de complemento conocido como AddInTree. Es un proyecto separado y se puede utilizar dentro de sus propias soluciones de forma gratuita. Todo se divide en diferentes complementos donde los complementos se agregan/eliminan/configuran fácilmente mediante archivos xml. SharpDevelop es un proyecto de código abierto, por lo que tendrá la oportunidad de examinar cómo se presenta la infraestructura, así como el bus de servicio y las integraciones de adición cruzada. El árbol complementario central se puede mover fácilmente al proyecto WPF sin implicaciones.

La siguiente opción es tomar "Composite Client Application Guidance" (también conocido como Prism, también conocido como CompositeWPF) ya mencionado anteriormente. Obtendrá el soporte Unity (Object Builder) listo para usar, Event Aggregation y el conjunto de valiosos patrones de diseño implementados.

Si quiere realizar algún diseño y arquitectura de bajo nivel, el MEF será la mejor elección (aunque trabajando con los tres personalmente me gusta este). En esto se basará VS 2010 para que pueda estar seguro de que el proyecto no perderá soporte en el futuro.

Mi consejo es elaborar sobre estos enfoques y seleccionar el mejor y eficiente que se adapte perfectamente a sus necesidades y las necesidades de su proyecto.

Cuestiones relacionadas