Ich finde die Anwendungserweiterung über Addins, so wie Sie in Visual Studio über die Visual Studio Shell angeboten wird, eine interessante Funktion, die ich auch in eigenen Anwendungen anbieten möchte. Muss ich dann die Visual Studio Shell ebenfalls als Grundlage verwenden oder kann ich die Addin-Anbinung auch selbst benutzerdefiniert anbieten. Wer hat Beispiele zur Umsetzung oder kennt Komponenten, die eine entsprechende Funktionalität anbieten?
MAF ist wesentlich komplexer als MEF, verfolgt aber auch andere Ziele. MAF ist speziell auf AddIns ausgerichtet und wie man diese lädt (und entlädt) ohne die Anwendung zu stören (+ Versionierung).. MEF geht mehr in Richtung Dependecy Injection. MAF und MEF können allerdings zusammen verwendet werden - je nachdem, was man braucht.
Laut Microsoft: "The focus of MAF is slightly higher-level then MEF, concentrating on extension isolation and assembly loading and unloading, while MEF's focus is on discoverability, extensibility, and portability."
abhängig davon welche Technologie du verwendest ist es etwas einfacher oder komplizierter. Mit WPF kann man das MEF Framework verwenden. Damit hat man den Vorteil dass man relativ leicht Addin verwenden kann. Wie das funktioniert findest du z.B. hier SoapBoxCorePinnballDemo
In anderen Programmiersprachen kann man ähnlich vorgehen. Dabei muss man aber mehr selbst machen. Durch einen guten Aufbau der Anwendung kann man dann dynamisch die Addins nachladen.
MEF kann man auch gut (und genauso einfach) ohne WPF verwenden... Die 2 haben nichts gemein (oder hab ich was verpasst?). http://msdn.microsoft.com/en-us/library/dd460648(VS.100).aspx
MEF geht mehr in Richtung Dependecy Injection.
MAF und MEF können allerdings zusammen verwendet werden - je nachdem, was man braucht.
Laut Microsoft: "The focus of MAF is slightly higher-level then MEF, concentrating on extension isolation and assembly loading and unloading, while MEF's focus is on discoverability, extensibility, and portability."