Managed Extensibility Framework (Erst ab .NET 4.0)
Hierzu gibt es auf MSDN einen Artikel: Managed Extensibility Framework Overview
System.Addin (Erst ab .NET 3.5)
Hierzu gibt es auf MSDN einen Artikel (Teil 1, Teil 2)
Eigene Lösung
Denkbar wäre eine einfache, eigene Lösung bei der mit Hilfe von Reflection alle DLL Dateien aus einem Plugin-Verzeichnis geladen werden und nach Klassen gesucht wird, die eine bestimmte Schnittstelle implementieren. Einen englischen Artikel dazu gibt es hier: Plugins in C#
Verwenden der ICSharpCode.Core Bibliothek
Diese Bibliothek, die auf der die .net Entwicklungsumgebung SharpDevelop basiert. Sie ermöglicht eine enorm flexible Erweiterbarkeit der Anwendung. AddIns können z.B. auch andere AddIns erweitern. Die Verwendung dieser Bibliothek erfordert natürlich einen ziemlichen Mehraufwand, der sich allerdings lohnt.
Die ICSharpCode.Core Bibliothek ist unter der LGPL lizensiert.
Informationsquellen hierfür:
- [Artikelserie] Den SharpDevelop-Kern in eigenen Anwendungen einsetzen
- Englischer Artikel Building Applications with the SharpDevelop Core
- Der Sourcecode von SharpDevelop - Einige wichtige Dinge werden in den oben genannten Artikeln noch nicht geklärt, da hilft nur die Betrachtung des SharpDevelop Sourcecodes...
- oder eine Suche im SharpDevelop Forum. Dort wurden die häufigsten Fragen schon beantwortet.
Es gibt noch einige andere Bibliotheken, die sich als AddIn System einsetzen lassen, z.B. das Razor Framework (Artikel Teil 1, Teil 2) Das Razor Framework ist ebenfalls unter der LGPL lizensiert.
Falls ich etwas übersehen oder nicht genannt habe, bitte melden .
Stichworte: Plugin, AddIn, Plugins, AddIns, Plug-In, Plug-Ins, Add-In, Add-Ins, PluginProgrammierung, PluginProgramm, PluginSystem, ProgrammPlugin, PluginKlasse, PluginKlassen, PluginManager, PluginArchitektur, PluginInterface, PluginAssembly, PluginDll, Assembly laden, DLL nachladen, pluginfähig, pluginfähige, pluginfähiges, zur Laufzeit, late-binding, latebinding.