Mit MEF können Sie ein System erstellen, das erweitert werden kann.
Nach meiner Erfahrung können Sie Schnittstellen entwerfen, Bibliotheken erstellen, die Implementierungen dieser Schnittstellen haben, und dynamisch zur Laufzeit laden. Sie können auch bestimmen, wie diese Erweiterungen geladen werden sollen - in derselben oder einer neuen Anwendungsdomäne Eins, etc. Sie können es auf ein Verzeichnis zeigen und sagen, dass alle Implementierungen einer bestimmten Schnittstelle zu bekommen, und laden Sie diese in Ihrer Anwendung zu verwenden.
Also, weil Ihre Anwendung nicht wissen muss alle seine Funktionen im Vordergrund und können sie dynamisch laden, können Sie sagen, es ist "erweiterbar" ..
Alternativ gibt es auch MAF, das Managed Add-in-Framework oder System.AddIn Namespace in .NET. Dies hat eine gewisse Überlappung, ist jedoch gezielter auf ein Add-In- oder Plug-In-Modell ausgerichtet. Es verfügt über Funktionen zum Verwalten der Versionierung und zum Behandeln der Abwärtskompatibilität zwischen Hosts und Add-Ins mit jeweils unterschiedlichen Versionen der Schnittstelle.
Um mit MEF beginnen, glaube ich, der beste Ort, wahrscheinlich ist hier: http://www.codeplex.com/MEF
Es gibt eine Menge Informationen gibt es auf den ersten Schritten, Dokumentation und sogar ein Forum ...
AFAIK MEF arbeitet immer in aktuelle Anwendungsdomäne und bietet keine Isolierung der Anwendungsdomäne. Nur MAF macht das. –