Estoy en la etapa de planificación para construir un sistema de intranet para empleados con ASP.NET MVC 4. Nos gustaría que el sitio constara de "módulos" separados, cada uno de los cuales proporciona una característica diferente: mensajes, cambios de nómina, etc. Me gustaría que estos módulos se puedan habilitar o deshabilitar en tiempo de compilación. La página de inicio mostrará algún tipo de navegación que se vinculará a cada módulo que se carga.
Eso es fácil hasta ahora, 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 sean dinámicamente detectables; 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 ningún otro lugar de la fuente. Cada módulo debe tener alguna forma de registrarse en la barra de navegación y, lo que es más importante, esto debe hacerse para cada módulo a medida que se carga.
Creo que esto impide usar las áreas de MVC, ya que están diseñadas para el caso cuando el diseño del sitio se conoce de antemano. MEF parece que podría ser apropiado, aunque las personas parecen haber tenido un éxito mixto al combinar MEF con MVC. ¿MEF es realmente el camino a seguir aquí, o hay una mejor manera de lograr lo que necesito?