Saya sedang dalam tahap perencanaan untuk sistem intranet karyawan yang akan dibangun dengan ASP.NET MVC 4. Kami ingin situs terdiri dari "modul" yang terpisah, yang masing-masing menyediakan fitur yang berbeda: pesan, perubahan penggajian, dll. Saya ingin modul ini dapat diaktifkan atau dinonaktifkan pada waktu kompilasi. Beranda akan menampilkan semacam navigasi yang akan ditautkan ke setiap modul yang dimuat.
Sejauh ini mudah, tetapi saya tidak ingin fitur navigasi harus tahu tentang modul sebelumnya. Dengan kata lain, saya ingin modul dapat ditemukan secara dinamis; Saya ingin dapat menulis kode untuk modul baru dan kemudian memiliki tautan yang ditambahkan ke bilah navigasi tanpa ada perubahan kode di tempat lain di sumber. Setiap modul harus memiliki beberapa cara untuk mendaftarkan diri dengan bilah navigasi, dan - yang lebih penting - ini harus dilakukan untuk setiap modul saat dimuat.
Saya percaya bahwa ini menghalangi penggunaan Area MVC, karena itu dirancang untuk kasus ketika tata letak situs diketahui sebelumnya. MEF sepertinya mungkin tepat, meskipun orang tampaknya memiliki keberhasilan yang beragam dalam menggabungkan MEF dengan MVC. Apakah MEF sebenarnya cara untuk pergi ke sini, atau apakah ada cara yang lebih baik untuk mencapai apa yang saya butuhkan?