Anfang September wurde die zweite Preview eines interessantes Projektes des .NET Framework Teams auf Codeplex veröffentlicht. Es handelt sich dabei um das Managed Extensibility Framework (MEF). Die Projekt-Homepage befindet sich unter
http://www.codeplex.com/mef.
Das MEF ist ein Framework, welches die Entwicklung von erweiterbaren .NET Anwendungen ermöglicht. Die Wiederverwendung und Erweiterung von Komponenten wird damit in Zukunft um einiges einfacher.
Bisher wurden Anwendungen erweiterbar und dynamisch entwickelt, indem mühselig eine Plugin-Infrastruktur eingebaut werden musste. Große Teile dieser Infrastruktur mussten sich um das dynamische Laden von Assemblies und Type kümmern. Viele Zeilen Quelltext sind geschrieben worden, um per Reflection auf externe Komponenten zuzugreifen.
Mit dem MEF wird dem Entwickler ein Großteil der Arbeit abgenommen.
In einer Artikelserie werde ich in die Verwendung das Managed Extensibility Frameworks einführen.
Was bietet das MEF?
Mit Hilfe des MEF können Anwendungen um Funktionalitäten erweitert werden, die sich in externen Komponenten befinden. Diese Komponenten können wiederum andere externe Komponenten verwenden. Für die Auflösung der Abhängigkeiten sorgt dabei das Framework. Anwendungsentwickler müssen sich also nur noch um die Implementierung der Funktionalitäten kümmern. Das Verknüpfen der Bestandteile wird komplett vom MEF übernommen.
Das Framework verfügt dabei über eine Reihe von Möglichkeiten, die benötigten Komponenten zu finden, einzusammeln und zu laden.
Die Erweiterungen können mit Meta-Informationen versehen werden. Dies erlaubt das Abfrufen und Filtern bestimmter Komponenten.
Im nächsten Artikel werde ich die Funktionsweise und Verwendung anhand einer kleinen Beispielanwendung demonstrieren.