Ich habe nach verschiedenen Methoden der Plug-in-Unterstützung für meine Anwendung gesucht. Idealerweise werde ich eine Kernfunktionalität erstellen und basierend auf verschiedenen Kunden verschiedene Plug-ins/Addons wie das Importieren, Exportieren von Daten usw. entwickeln. Welche Methoden gibt es, um eine C# -Anwendung über eine Plug-In-Architektur erweiterbar zu machen?Wie entwickle ich Dynamic Plug-In-basierte Funktionalität in C#
Lets machen ein Beispiel. Wenn wir ein Programm haben, das aus einem Hauptmenü besteht (Datei, Bearbeiten, Ansicht, usw.), zusammen mit einem TreeView, das verschiedene Marken von Autos gruppiert nach Hersteller (Ford, GM, für jetzt) zeigt. Wenn Sie mit der rechten Maustaste auf ein Auto klicken, wird ein Kontextmenü mit der einzigen Option "Auto löschen" angezeigt.
Wie könnten Sie die Anwendung so entwickeln, dass Plug-Ins bereitgestellt werden könnten, damit Sie einem Kunden eine neue Marke in der TreeView anzeigen lassen können, sagen wir Honda, und das Auto-Kontext-Menü erweitern "ein Auto malen"?
In Eclipse/RCP-Entwicklung wird dies leicht durch Erweiterungspunkte und Plug-Ins behandelt. Wie geht C# damit um? Ich habe meine eigene Plug-in-Architektur entwickelt und MEF gelesen.
Ich habe eine Reihe von MEF-Videos gesehen, die die Verwendung von Lade-Assemblys, Catelogs und Containern zeigen, aber ich muss noch vollständig verstehen, wie MEF Ihnen erlaubt, ein Plugin zu implementieren, das Ihr Hauptmenü oder ein Kontextmenü für ein gegeben Kontrolle. Ich schätze, ich vermisse den letzten Sprung von dem, was die Videos darstellen, und erlaube meiner Bewerbung, auf die Geschenke von Plugins zu reagieren. Hinzufügen einer neuen Menüschaltfläche zum Hauptmenü zum Beispiel. – Matthew
Das sollte einfacher herauszufinden, wenn Sie MVVM (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx) verwenden. Dadurch können Sie Menüs und MenuItems an ein zugrunde liegendes (Pluggable) Objektmodell binden. –