Mit dem .NET Framework 4.5 wurden auch bei dem Managed Extensibility Framework (MEF) einige Neuerungen eingeführt. So werden jetzt offene generische Typen unterstützt und es gibt die Möglichkeit einer API-basierten Konfiguration. Dadurch wird eine lose Koppelung noch einfacher erreicht. Diese und alle neuen Erweiterungen erklärt der folgende Post.
Category: Managed Extensibility Framework
MEF Teil 10 – Parts über ExportProvider und App.config in AppDomain laden
Der folgende Post behandelt eigentlich mehrere Themen. Zum einen geht es um das Erstellen eines eigenen ExportProviders, der über die App.config die zu ladenden Parts ausliest. Zum anderen sollen die geladenen Parts in einer eigenen AppDomain ausgeführt werden.
Continue reading “MEF Teil 10 – Parts über ExportProvider und App.config in AppDomain laden”
MEF Teil 9 – Zugriff auf Composable Parts und Metadaten ohne Lazy<>
Der Zugriff auf Metadaten erfolgt über die Klasse Lazy<T, TMetadata>. So steht es in der Dokumentation zum Managed Extensibility Framework (MEF). Doch es geht auch ohne Lazy<T, TMetadata>. Was dabei zu beachten ist und welche Möglichkeiten sich dadurch ergeben, zeigt das folgende Beispiel.
Continue reading “MEF Teil 9 – Zugriff auf Composable Parts und Metadaten ohne Lazy<>”
MEF Teil 8 – Eigenen ExportProvider erstellen
Das Managed Extensibility Framework (MEF) kann durch verschiedene Möglichkeiten erweitert werden. Eine Variante sind eigene Export-Provider. Ein Export-Provider macht genau das, was der Name schon aussagt, er stellt Exports der Klasse CompositionContainer zur Verfügung. Wie die Exports gefunden und instanziiert werden, ist komplett unter eigener Kontrolle. Eine weitere Variante ist die Benutzung der Klasse CompositionBatch, die allerdings deutlich weniger Möglichkeiten bietet.
Continue reading “MEF Teil 8 – Eigenen ExportProvider erstellen”
MEF Teil 7 – Exportieren über eine Class Factory
Über die Attribute Import und Export werden Objekte fest miteinander verbunden, vorausgesetzt, sie sind zueinander kompatibel. Nicht immer ist diese ‘feste’ Bindung erwünscht. Eine Class Factory kann hierbei helfen, diese starre Zuordnung aufzubrechen. Der mögliche Einsatz einer Class Factory soll durch zwei einfache Beispiele gezeigt werden.
Continue reading “MEF Teil 7 – Exportieren über eine Class Factory”
MEF Teil 6 – Constructor-Injection
Bei Constructor-Injection werden sämtliche Abhängigkeiten einer Klasse über den Konstruktor übergeben. Damit kann ein Objekt der Klasse nur erzeugt werden, wenn alle Abhängigkeiten bei der Erstellung vorhanden sind. Der Einsatz von Constructor-Injection mit dem Managed Extensibility Framework soll durch ein einfaches Beispiel vorgestellt werden.
MEF Teil 5 – Composition und Recomposition
Die Kataloge und Container dienen dazu, die Instanzen der Composable Parts zu erzeugen und miteinander zu binden. In den vorherigen Blogs wurde dieses Thema nicht weiter behandelt. Das soll jetzt nachgeholt werden.
Continue reading “MEF Teil 5 – Composition und Recomposition”
MEF Teil 4 – Vererbung mit Composable Parts
Klassen, welche die Attribute Import und Export enthalten, können von anderen Klassen geerbt werden. Das Verhalten vom Managed Extensibility Framework (MEF) hat hierbei einige Besonderheiten, auch in Bezug auf mögliche Metadaten. Hilfestellung bietet das Attribut InheriedExport.
Continue reading “MEF Teil 4 – Vererbung mit Composable Parts”
MEF Teil 3 – Lifecycle beeinflussen und überwachen
Das Binden der Composable Parts wurde im 1. Teil ausführlich vorgestellt. Bei einer Anwendung kann es aber notwendig sein, solche Verbindungen gezielt wieder aufzulösen ohne gleich den ganzen Container zu löschen. Des weiteren werden Schnittstellen vorgestellt, die die Parts darüber informieren, ob deren Verbindung hergestellt, oder der Part komplett gelöscht wurde.
Continue reading “MEF Teil 3 – Lifecycle beeinflussen und überwachen”
MEF Teil 2 – Metadaten und Erstellungsrichtlinien
Im 1. Teil ging es um die Grundlagen, die Imports und Exports. Der 2. Teil schließt an den ersten an und zeigt weitere Leistungsmerkmale des Managed Extensibility Framework (MEF). Schwerpunkt sind dieses Mal die Metadaten und die Erstellungsrichtlinien.
Continue reading “MEF Teil 2 – Metadaten und Erstellungsrichtlinien”