Estoy diseñando una aplicación (en Mono / .NET ) y me gustaría darle
un diseño totalmente modular, para facilitar la colaboración de
varias personas al proyecto, la cuestión es como ínter-operarían
esos módulos.
Supongamos un caso, yo diseño un módulo llamémosle A en que hay
definidas unas clases para realizar una determinada tarea, llega otro
desarrollador y diseña otro modulo B que hace uso de esas clases,
hasta ahí perfecto, el problema es que un módulo A requiera al B y el
B al A también, produciéndose una referencia circular.
Una posible solución al proyecto sería implementar un servidor http
interno (en un módulo de comunicaciones) que haría referencia a todos
los módulos, así que para hacer uso de cualquier otro módulo, el
modulo tendría que hacer una petición al módulo de comunicaciones,
pero esto no es demasiado viable, puesto que cada modificación en
cualquiera de los módulos haría que se tuviera que modificar el
módulo de comunicaciones
También he estado mirando SOAP, pero no he llegado a comprender las
ventajas que me brindaría
Otra opción sería usar servicio web, pero si quieres usar un par de
módulos para algo trivial, tener que montar una infraestructura
demasiado grande para algo sencillo.
La finalidad de todo esto es intentar reducir la duplicidad de código
al mínimo, y que cada desarrollador que quiera colaborar tenga una
base totalmente testeada y pueda enfocarse a la tarea para la que esté
más cualificado, aparte de la ventaja de que cualquier mejora en un
módulo automáticamente sería aprovechada por los demás módulos.
¿Alguna idea de cómo montarlo?
Leer las respuestas