[ANMERKUNG: Ich arbeite an MonoDevelop, die Mono.Addins verwendet, aber ich diskutiert die Unterschiede zwischen MEF und Mono.Addins ausgiebig mit Glenn-Block aus dem MEF-Team letzte Woche]
MEF auf das Komponieren Code basiert obwohl die zugrundeliegenden Abstraktionen sehr flexibel sind. Im Gegensatz dazu basiert Mono.Addins auf einer Baumstruktur von Metadaten, in der Sie Daten/Metadaten/Code in ein reiches Schema Ihrer Definition einfügen können, sodass Erweiterungen Daten/Metadaten sowie Code hinzufügen können.
Mono.Addins bietet Ihnen ein Add-in Management/Verpackung/Repository/Update-System Out-of-the-Box. Für MEF müssten Sie zu diesem Zeitpunkt Ihre eigenen erstellen.
MEF hat eine etwas niedrigere Eintrittsbarriere, und viel mehr Designarbeit ist in seine Benutzerfreundlichkeit und die zugrunde liegenden Abstraktionen eingeflossen. Außerdem ist es ein Teil von .NET 4, also wird es eine viel größere Gemeinschaft von Benutzern geben, die sich mit/dafür entwickeln.
An diesem Punkt, wenn Sie Daten/Metadaten sowie Code einstecken müssen und Sie ein fertiges Verpackungssystem wollen, würde ich Mono.Addins empfehlen, sonst würde ich MEF empfehlen. Es ist wahrscheinlich, dass die Funktionen von Mono.Addins in MEF implementiert werden. Daher wird es wahrscheinlich einen Migrationspfad in Richtung MEF geben.
Danke. Es ist ein Anfang ... –