Ich bin in der Planungsphase für ein Intranetsystem für Mitarbeiter, das mit ASP.NET MVC 4 erstellt werden soll. Wir möchten, dass die Site aus separaten "Modulen" besteht, von denen jedes eine andere Funktion bietet: Nachrichtenübermittlung, Gehaltsänderungen usw Ich möchte, dass diese Module zum Zeitpunkt der Kompilierung aktiviert oder deaktiviert werden können. Auf der Homepage wird eine Art Navigation angezeigt, die auf jedes geladene Modul verweist.
Das ist bisher einfach, aber ich möchte nicht, dass die Navigationsfunktion vorher etwas über die Module weiß. Mit anderen Worten, ich möchte, dass die Module dynamisch erkennbar sind. Ich möchte in der Lage sein, den Code für ein neues Modul zu schreiben und dann einen Link zur Navigationsleiste hinzuzufügen, ohne dass sich der Code an einer anderen Stelle in der Quelle ändert. Jedes Modul sollte eine Möglichkeit haben, sich in der Navigationsleiste zu registrieren, und - was noch wichtiger ist - dies sollte für jedes Modul beim Laden durchgeführt werden.
Ich bin der Meinung, dass dies die Nutzung der MVC-Bereiche ausschließt, da diese für den Fall konzipiert sind, dass das Layout der Website im Voraus bekannt ist. MEF scheint angebracht zu sein, obwohl die Kombination von MEF und MVC anscheinend gemischte Erfolge hatte. Ist MEF tatsächlich der richtige Weg, um hierher zu kommen, oder gibt es einen besseren Weg, um das zu erreichen, was ich brauche?