Sistema de Plugins con C# y .NET

Muchos sistemas de plugins están basados en la implementación de interfaces fijos que amplían la definición de un plugin permitiendo realizar una determinada cantidad de operaciones que en cualquier caso siempre es fija, de forma que, por ejemplo si un plugin proporciona un menu se define el interfaz IPluginMenu, si implementa un toolbar la interfaz IPluginToolbar y así sucesivamente para cada una de las funcionalidades que se pretende que un plugin pueda proporcionar.

El enfoque de Monet está orientado a permitir que cada plugin pueda definir servicios, utilizables por otros plugins, en base a un contrato común (un interfaz compartido y conocido por ambos plugins) o en caso de que no sea posible definir dicho contrato o no se tenga acceso a él, permitir la comunicación entre ambos mediante un mecanismo de paso de mensajes similar al de windows.

Así mismo Monet proporciona los medios para definir Hooks, es decir, partes de código que se pretende que puedan ser interceptadas por otros plugins modificando de forma sustancial o no su comportamiento, de una forma muy similar a como funcionan los eventos estándar de .NET.

Página web del proyecto: Monet Plugins Library