Estoy en la etapa de planificación para que se construya un sistema de intranet de empleados con ASP.NET MVC 4. Queremos que el sitio conste de "módulos" separados, cada uno de los cuales proporciona una característica diferente: mensajería, nómina cambios, etc. Me gustaría que estos módulos se puedan habilitar o deshabilitar en el momento de la compilación. La página de inicio mostrará algún tipo de navegación que se vinculará a cada módulo que se cargue.
Hasta ahora es fácil, pero no quiero que la función de navegación tenga que conocer los módulos de antemano. En otras palabras, quiero que los módulos se puedan descubrir dinámicamente; Quiero poder escribir el código para un nuevo módulo y luego agregar un enlace a la barra de navegación sin cambios de código en ninguna otra parte de la fuente. Cada módulo debe tener alguna forma de registrarse con la barra de navegación y, lo que es más importante, debe hacerse para cada módulo a medida que se carga.
Creo que esto excluye el uso de Áreas MVC, ya que están diseñadas para el caso cuando el diseño del sitio se conoce de antemano. El MEF parece que podría ser apropiado, aunque la gente parece haber tenido éxito mixto al combinar MEF con MVC. ¿Es realmente el MEF el camino a seguir, o hay una mejor manera de lograr lo que necesito?