Das MEF-Team sagt immer wieder, dass es sich um ein Plug-in-Modell handelt. Reden wir also über UI-Plugins? Wie können wir dieses Zeug in Nicht-UI-Code verwenden? Ich habe den Code heruntergeladen und die Beispiele beziehen sich alle auf GUI. Habe ich das falsch verstanden?
Antworten
Zu viele Anzeigen?Ilja
MEF ist absolut nicht nur für UI. Nichts an MEF ist von der Benutzeroberfläche abhängig, weshalb es im Namensraum System.ComponentModel angesiedelt ist. Sie können MEF in Desktop-Anwendungen, Webanwendungen oder Diensten verwenden.
Was die Muster betrifft, so danke ich Ihnen für Ihr Feedback. Wir brauchen bessere Beispiele, die verdeutlichen, dass es sich um eine nicht auf der Benutzeroberfläche basierende Technologie handelt. Ich denke, der Grund dafür, dass sich viele der Beispiele um die Benutzeroberfläche drehen, ist, dass unsere wichtigsten Partner wie Visual Studio MEF in Desktop-Anwendungen verwenden. Ich werde mit dem Team über einige nicht UI-basierte Beispiele sprechen.
Danke Glenn
Ayende fasst die MEF hier sehr schön zusammen:
http://ayende.com/Blog/archive/2008/09/25/the-managed-extensibility-framework.aspx
Außerdem hatten die Jungs von Herding Code ein tolles Interview mit Glenn Block, einem der MS MEF-Mitarbeiter:
Wenn Sie über Microsoft sprechen Managed Extensibility Framework dann nein, es geht definitiv nicht nur um die Benutzeroberfläche.
Indem Sie in den Beispielen etwas Visuelles verwenden, machen Sie es den Leuten leichter, das Konzept zu verstehen. Deutlicher als bei einem Tetris-Spiel mit Steckblöcken kann man es nicht machen.
Bei MEF geht es wohl eher darum, die Funktionalität Ihrer Anwendung zu erweitern. In unseren Anwendungen haben wir uns MEF angeschaut, um den Benutzern die Möglichkeit zu geben, verschiedene Ausgaben einer Bewertungsmaschine zu verwenden. Für diese Module gibt es keine Benutzeroberfläche. Es kann UI-Funktionen hinzufügen, aber es ist nicht notwendig.