El código y otra información adicional está disponible en la página del proyecto Monet Plugins Library y tenéis disponible la última versión del código en el control de versiones de subversion http://svn.thealphasite.org/Monet.
Un sistema de plugins es un mecanismo complejo. Por un lado el traslado de dependencias hacia el tiempo de ejecución (como veremos más adelante) lo hace mucho más complicado de explicar, de comprender y de implementar. Hay muchas cuestiones a tener en cuenta, este artículo trata de abarcar las principales pero me temo que hay muchas cuestiones que quedarán fuera.
Por otro lado, aunque para entender el sistema no es necesario un conocimiento de .NET o C#, desde luego estos puntos ayudarán a comprenderlo mejor y con más profundidad.
Evidentemente el sistema es demasiado complejo para que explique aquí todas y cada una de las partes que componen el sistema. El código en si, que incluyo en el artículo, está bastante comentado y he procurado ilustrar en el artículo las partes principales del sistema pero no me cabe duda de que habrá zonas que queden sin comentar.
Para aprender un poco de Ajax yo estoy siguiendo el libro Ajax in Action de forma que cuando trato de explicar lo que voy haciendo sigo el hilo que va marcando el libro (por si alguién quiere comprarselo, que a mi me parece un libro estupendo).
El patron MVC consiste en la separación de ciertos elementos de una página web en tres elementos lógicos. Es algo similar a la separación de contenido y forma que ya mencionabamos en el articulo anterior.
El modelo describe el contenido de la página, como su nombre indica, lo que modela la página. Por ejemplo, una página que muestra un mapa (como google maps) modela localizaciones y puntos de interes mientras que la página de un periódico modela noticias, articulos y, posiblemente, anuncios.
La vista es la forma de mostrar el contenido al usuario y de recibir las acciones que este realiza. Representa el interfaz del usuario. En un buen diseño deberíamos ser capaces de cambiar la vista (el interfaz que le presentamos al usuario) sin tocar el modelo o el controlador. Es más, sería (o debería ser) perfectamente factible implementar un nuevo modelo de vista (por ejemplo un frontrend flash) sin tener que cambiar nada excepto la vista.
Resulta especialmente interesante entre los requisitos tener claro que la principal potencia que ofrecen las hojas de estilo es la de separar el contenido de la presentación, es decir, en cierto sentido separar al diseñador del creador puesto que Ajax constituye sencillamente un paso más en esa dirección.