Sono in fase di pianificazione per la creazione di un sistema intranet di dipendenti con ASP.NET MVC 4. Vorremmo che il sito fosse costituito da "moduli" separati, ognuno dei quali offre una funzionalità diversa: messaggistica, buste paga modifiche, ecc. Mi piacerebbe che questi moduli fossero abilitati o disabilitati in fase di compilazione. La homepage mostrerà una sorta di navigazione che collegherà ogni modulo che viene caricato.
È facile finora, ma non voglio che la funzione di navigazione debba sapere in anticipo sui moduli. In altre parole, voglio che i moduli siano dinamicamente individuabili; Voglio essere in grado di scrivere il codice per un nuovo modulo e quindi aggiungere un collegamento alla barra di navigazione senza modifiche al codice in nessun altro punto della sorgente. Ogni modulo dovrebbe avere un modo per registrarsi con la barra di navigazione e, cosa ancora più importante, dovrebbe essere fatto per ogni modulo appena caricato.
Credo che ciò precluda l'utilizzo delle aree MVC, dal momento che sono progettate per il caso in cui il layout del sito è noto in anticipo. Sembra che il MEF sia appropriato, anche se sembra che la gente abbia avuto successo misto nella combinazione di MEF con MVC. Il MEF è davvero la strada da percorrere qui, o esiste un modo migliore per realizzare ciò di cui ho bisogno?