tipos software patrones para móviles lista ejemplos diseño arquitectura aplicaciones .net design-patterns plugins

.net - software - patrones de diseño web



Patrón de diseño para implementar complementos en su aplicación? (4)

Consulte el espacio de nombres System.AddIn según esta respuesta a una pregunta similar.

¿Cuál es la forma estándar para permitir e implementar un sistema de complementos para su aplicación?

En mi última aplicación hice una interfaz simple para todos los complementos que deben implementar. Luego, cargo todos los ensamblados en el directorio de aplicaciones y elimino los que no implementan esa interfaz.

Uno de los métodos en la interfaz es un método DoWork () que recibe periódicamente llamadas a todos los ensamblados cargados para realizar cualquier acción que los complementos puedan tener.

¿Cuál es la forma "correcta" de hacer un sistema de complemento? ¿Acabas de crear una interfaz para complementos? ¿Debería llamar periódicamente a un método en particular en todos los complementos? ¿Hay una manera más sofisticada?

EDITAR:

Gracias Matt Hamilton por la referencia al espacio de nombres System.Addin. Probablemente esta sea la forma en que implemente mis complementos. Sin embargo, todavía tengo curiosidad acerca de la arquitectura de los complementos en general y no me importaría conocer la mejor manera en que deberían diseñarse, implementarse, cómo llamarlos una vez cargados, etc.


Desde una perspectiva de diseño estrictamente de diseño, es posible que desee echar un vistazo a OSGi (esto está altamente orientado a Java, pero se considera que es un muy buen sistema de complemento / módulo). Podría ser exagerado para lo que está tratando de lograr, pero hay muchas cosas realmente buenas sobre cómo manejar los módulos de carga y descarga dinámicamente en el medio de una carrera, etc.


Glenn Block y Brad Abrams en Microsoft lanzaron recientemente el Marco de Extensibilidad Administrada que proporciona un marco para tratar exactamente de lo que está hablando.

La documentación y la descarga están disponibles here .

Brad''s blogs de Glenn''s y Brad''s también son excelentes recursos para MEF.