Die Umsetzung MEF mit ASP.NET MVC?
Ich bin versucht, herauszufinden, ob jemand irgendwelche Erfahrungen oder Ideen, MEF (Managed Erweiterbares Framework (Microsoft ' s neue plugin-framework) mit ASP.NET MVC. Ich brauche, um einen standard ASP.NET MVC, die ich habe. Aber ich brauche, um zusätzliche Funktionalität bieten, d.h. Views und Controller, etc, je nachdem, ob ich ein plugin hinzufügen. Es muss nicht dynamisch zusammengestellt, d.h. source code... aber eine DLL, die ich in das system..
Gibt es eine Möglichkeit, dynamisch eine DLL laden, wenn die app gestartet wird, und führen dann eine VIEWS und CONTROLLER, die mit dem Hauptsystem? Ich weiß nicht, ob ich auf dem richtigen Weg.
Dann, ich nehme an in der "STANDARD" - Ansichten, die mit der app kommen, kann ich mit einer "WENN, DANN", um herauszufinden, wenn ein plugin geladen wird, und VERSCHMELZEN in einem user-Steuerelement.
Gut, ich Rede zu laut hier, aber ich denke, Sie verstehen, was ich bin.
Irgendwelche Ideen?
InformationsquelleAutor der Frage mark smith | 2009-04-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
kein Glück mit dieser? Ich Las diese und denke, dass das ist, was Sie suchen.
Ich habe genau null xp mit MEF, aber es sieht vielversprechend aus. Ich hoffe, ich kann kratzen einige Stunden freie Zeit gemeinsam zu Hause zu Experimentieren. Es wäre extrem nützlich, um eine Art modularen MVC-framework", die Möglichkeit.
Als für das aktuelle Projekt an dem ich arbeite, ich habe Folgendes problem:
Mehrere Seiten mit den gleichen Ansichten, nur andere CSS-Dateien. Derzeit habe ich zu duplizieren die Ansichten was eine maintaince problem.
Ich hoffe, ich kann diese Ansichten in einem zentralen Ort mit MEF.
InformationsquelleAutor der Antwort Boris Callens
Wir sind mit Tonnen von MEF in ASP.NET MVC, obwohl die meisten es sitzt auf einem Niveau unterhalb der controller-Ebene, wie in unserem unteren level-Module verwenden MEF plugins für die Prüfung der Berechtigungen und die überprüfung von Daten.
Wir jedoch auch eine weitere composable Ansatz für unsere Steuerungen auch. Ansichten sind mehr schwierig, aber wir haben tatsächlich vollständig eliminiert die Verwendung von regulären ASP.NET MVC-Ansichten und speichern unsere Razor-Ansichten in snippets in einer Datenbank. Unsere Steuerungen Fragen Sie dann eine template-engine für eine Ansicht zur Laufzeit und Rendern ContentResult der Antwort anstelle von der Rückkehr der Ansicht("Viewname"), etc.
Unserer MEF plugins tragen alle Bezeichner Eigenschaften, lassen Sie uns tun, eine Kaskadierung überschreiben, zur Laufzeit, um herauszufinden, welches plugin/Klasse sollte verwendet werden, für einen bestimmten Zweck. Das einfachste Beispiel, um zu demonstrieren, wäre es, wenn Sie darüber nachdenken, eine app, die hat eine gemeinsame Basis, sondern wird eingesetzt um 50+ - Implementierungen, die jeweils die option zum überschreiben der core-Funktionalität.
So, haben Sie vielleicht so etwas wie eine IUserController, das Methoden für "Login", "Logout", etc.
Zusätzlich zu, dass die eigentliche Funktionalität, würden wir hinzufügen eines nur-lese-GUID-Eigenschaft, um die Schnittstelle namens "SiteId". Jede Implementierung würde dann hard-code, der für "SiteId" es ist vorbestimmt. Für die "default" - Implementierung in den core-code, würde es wieder "Guid.Leer".
Dann, wenn wir aufrufen, MEF und gehen auf der Suche, für die Umsetzung der IUserController zu verwenden, wir würden eine ImportMany Sie Sie alle in eine Liste und dann die LINQ-Abfrage die Eigenschaften herauszufinden, die man zu verwenden:
Dazu mit Controllern, Ihre beste Wette ist, um den Blick auf einige der Implementierungen von MEF-basierten controller-Fabriken gibt es im Internet.
Jedoch, wie ich schon sagte, wir tun fast alles auf einem Niveau, das niedriger ist und haben unsere Module oder der Controller diese Art von lookup, um festzustellen, welche plugins laufen.
InformationsquelleAutor der Antwort J Wynia
Prüfen :
http://www.fidelitydesign.net/?p=104
Modular ASP.NET MVC mit dem Managed Extensibility Framework (MEF), Part One von Matthew Abbott.
InformationsquelleAutor der Antwort João Passos
Dies ist ein wild guess.
Sie überschreiben die Standard-controller-factory mit eine mit MEF zu entdecken
IController
s. Da Blick entdeckt werden, sind von der Konvention, Sie sollten sich nicht um Sie kümmern.InformationsquelleAutor der Antwort Jabe
Gibt es http://blog.maartenballiauw.be/post/2009/04/21/ASPNET-MVC-and-the-Managed-Extensibility-Framework-(MEF).aspx und https://blogs.msdn.com/hammett/archive/2009/04/23/mef-and-asp-net-mvc-sample.aspx Beschreibung wie zu verwenden MEF und MVC in einer Anwendung.
InformationsquelleAutor der Antwort maartenba
Ich haben zusammen eine pluggable-framework mit MVC und MEF mit stark typisierte sichten über : http://www.thegecko.org/index.php/2010/06/pluggable-mvc-2-0-using-mef-and-strongly-typed-views/
InformationsquelleAutor der Antwort theGecko