Sono in fase di pianificazione per la creazione di un sistema Intranet per i dipendenti con ASP.NET MVC 4. Vorremmo che il sito fosse costituito da "moduli" separati, ognuno dei quali fornisce una funzionalità diversa: messaggistica, modifiche del libro paga, ecc. Vorrei che questi moduli potessero essere abilitati o disabilitati in fase di compilazione. La homepage mostrerà un tipo di navigazione che si collegherà a ciascun modulo che viene caricato.
Finora è facile, ma non voglio che la funzione di navigazione debba prima conoscere i 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 fonte. Ogni modulo dovrebbe avere un modo per registrarsi con la barra di navigazione e, cosa più importante, questo dovrebbe essere fatto per ogni modulo quando viene caricato.
Credo che ciò precluda l'utilizzo delle aree MVC, dal momento che quelle sono progettate per il caso in cui il layout del sito è noto in anticipo. MEF sembra che potrebbe essere appropriato, anche se le persone sembrano aver avuto un successo misto nel combinare MEF con MVC. MEF è davvero il modo di andare qui o c'è un modo migliore per realizzare ciò di cui ho bisogno?