¿Cuál es la forma estándar de permitir e implementar un sistema de complemento para su aplicación?Patrón de diseño para implementar complementos en 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 periódicamente se ejecuta en 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 complementos? ¿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?
EDIT:
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.