Pregunta

Estoy pensando en reescribir una parte de nuestra aplicación en C# (actualmente código VB6 heredado).El módulo con el que estoy empezando es responsable de importar datos de una variedad de sistemas a nuestra base de datos.Aproximadamente 5 o 6 veces al año, un nuevo cliente nos pide que escribamos una nueva importación para el sistema que utiliza.Actualmente, esto requiere que lancemos una nueva versión de nuestro software para cada nueva opción de importación que agreguemos a la aplicación.

Uno de los objetivos de la reescritura es hacer que la aplicación admita complementos.Cada nueva importación puede convertirse en un ensamblaje separado que la aplicación host reconocerá y permitirá que el usuario final interactúe.Con suerte, esto simplificará la vida hasta cierto punto, ya que simplemente podemos colocar un nuevo ensamblado en el directorio y hacer que la aplicación principal (host) lo reconozca y lo utilice.

Uno de los puntos con los que estoy luchando se relaciona con las diferencias entre las opciones de importación que admitimos actualmente.En algunos casos, permitimos que el usuario apunte a un directorio y lea todos los archivos dentro del directorio en nuestro sistema.En otros casos, les permitimos apuntar a un solo archivo e importar su contenido.Además, algunas importaciones tienen una restricción de rango de fechas que el usuario aplica mientras que otras no.

Mi pregunta es, ¿cómo puedo diseñar la aplicación de una manera que permita cierta flexibilidad entre las importaciones que creamos y admitimos y al mismo tiempo implementamos una interfaz común que permitirá que la aplicación host reconozca fácilmente los complementos y las opciones? que cada uno expone al usuario?

¿Fue útil?

Solución

Le recomendaría que eche un vistazo al marco de complementos administrado que se incluye con .NET 3.5.El Equipo complementario ha publicado algunas muestras y herramientas en Sitio CodePlex también..

Otros consejos

.Net 3.5 tiene el espacio de nombres system.Addin.

Este hilo también tiene buena información para versiones anteriores del marco:
http://forums.devshed.com/net-development-87/system-plugin-532149.html

para la teoría echa un vistazo a la patrón de complemento en martin fowlers Patrones de arquitectura de aplicaciones empresariales

Para ver un ejemplo interesante, echa un vistazo a este tutorial: Arquitectura de complementos usando C#

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top