2009-08-25 5 views
4

Ich muss derzeit eine Möglichkeit zum Hinzufügen von Erweiterbarkeit in meiner Anwendung bereitstellen. Ich schaue gerade auf MEF und MAF.Sollte MEF in einer Produktionsanwendung verwendet werden

MEF bietet ein einfacheres Programmiermodell und passt auch besser zu unseren Verwendungsszenarien, da wir Addins nur in eine einzelne Anwendungsdomäne laden wollen - dies hängt mit der Architektur des Systems zusammen. Dasselbe kann mit MAF auch mit wenigen Codezeilen erreicht werden.

Ich frage mich jedoch, ob MEF in Produktionssystemen verwendet werden sollte, da es in der Vorschau angezeigt wird?

Antwort

5

MEF wurde mehrere Iterationen durchlaufen, und ich denke, es ist jetzt ziemlich nah an einer stabilen API (vielleicht mit Ausnahme seiner Silverlight-Unterstützung). Denken Sie daran, dass MEF Teil von .NET 4.0 ist und VS2010 MEF für sein Erweiterbarkeitsmodell verwenden soll. Daher ist es sehr abzustrebend, die API in dieser späten Phase dramatisch zu ändern.

FWIW, ich hatte keine Probleme mit der Stabilität von MEF und würde kein Problem bei der Verwendung in einem Produktionssystem sehen. Behandeln Sie es mit der gleichen Vorsicht wie andere Open-Source-Komponenten.

0

Ich denke, dass Sie nicht über die neue Version oder Änderungen von MEF sorgen müssen. MEF ist eine Bibliotheksversammlung. In Ihrer Produktionsanwendung können Sie Ihrem Projekt eine MEF-Bibliothek hinzufügen und die Assembly immer an Ihr lokales Implementierungsziel kopieren. Auf diese Weise bleibt Ihre Produktionsanwendung bei dieser Version erhalten.

Ich habe viele Open-Source-Bibliotheken verwendet. Solange Sie die Bibliotheksdateien in demselben Ordner haben, in dem Ihre Anwendung bereitgestellt wird, sind Sie in Ordnung. Es ist besser, die Quellcodes der ursprünglichen Open Source-Projekte zu erhalten oder sie zu Ihrer Lösung hinzuzufügen. Es wird Ihnen helfen, wenn Sie in die Bibliothek debuggen müssen.

2

Ich schreibe gerade eine "echte" Anwendung basierend auf MEF. Mein erster Schritt bestand darin, ein generisches erweiterbares Anwendungsframework zu erstellen (mit erweiterbaren Menüs, Symbolleisten, Statusleiste, andockbaren Fenstern usw.). Wir haben das als SoapBox Core geöffnet. Ich habe auch eine demo veröffentlicht, die erklärt, wie es funktioniert.

Ich denke, es ist bereit, in realen Anwendungen zu verwenden.