Estou no estágio de planejamento para a criação de um sistema de intranet de funcionários com o ASP.NET MVC 4. Gostaríamos que o site consistisse em "módulos" separados, cada um com um recurso diferente: mensagens, alterações na folha de pagamento etc. Gostaria que esses módulos pudessem ser habilitados ou desabilitados em tempo de compilação. A página inicial exibirá algum tipo de navegação que será vinculado a cada módulo carregado.
Até agora, isso é fácil, mas não quero que o recurso de navegação precise conhecer os módulos com antecedência. Em outras palavras, quero que os módulos sejam dinamicamente detectáveis; Quero poder escrever o código para um novo módulo e adicionar um link à barra de navegação sem alterações de código em nenhum outro local da fonte. Cada módulo deve ter alguma maneira de se registrar na barra de navegação e, o que é mais importante, isso deve ser feito para cada módulo à medida que é carregado.
Acredito que isso impede o uso das Áreas do MVC, pois elas foram projetadas para o caso em que o layout do site é conhecido anteriormente. Parece que o MEF pode ser apropriado, embora as pessoas pareçam ter tido sucesso misto na combinação do MEF com o MVC. O MEF é realmente o caminho a seguir aqui ou existe uma maneira melhor de realizar o que eu preciso?