Benannte und optionale Parameter

Manchmal stolpert man bei C# über Leistungsmerkmale, von denen man sich wünscht, schon eher davon gehört zu haben. Ein gutes Beispiel hierfür sind benannte und optionale Parameter, die seit C# 4.0 bereitgestellt werden. Doch es lauern auch Gefahren, die man kennen sollte.

Continue reading “Benannte und optionale Parameter”

Einsatz von Lazy<T, TMetadata> ohne MEF

Im Zusammenhang mit dem Managed Extensibility Framework (MEF) sind mir zum ersten mal die Klassen Lazy<T> und Lazy<T, TMetadata> über den Weg gelaufen. Während Lazy<T> ausreichend beschrieben wird, so ist Lazy<T, TMetadata> immer nur in Zusammenhang mit MEF zu finden. Dabei kann Lazy<T, TMetadata> auch ohne MEF sinnvoll eingesetzt werden.

Continue reading “Einsatz von Lazy<T, TMetadata> ohne MEF”

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”

.NET User Group Tour

Zu dem Thema “Managed Extensibility Framework’” werde ich in den nächsten Monaten Vorträge in verschiedenen .NET User Groups halten.

10.10.2011 .NET User Group Paderborn
19.10.2011 .NET User Group Bielefeld
03.11.2011 .NET Developers Group Berlin Brandenburg
01.12.2011 .NET User Group Regensburg
28.03.2012 .NET User Group Rhein/Ruhr

(Angaben ohne Gewähr)

Continue reading “.NET User Group Tour”

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.

Continue reading “MEF Teil 6 – Constructor-Injection”

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”