Danielg'in söyledikleri iyi. Ekleyeceğim:
System.Addins hakkındaki videoları izlerseniz, çok büyük projelerden bahsediyorlar. O bir bahsediyor takım evsahibi uygulamasını bir antrenörlük takımı her AddIn yönetme ve üçüncü ekip sözleşme ve boru hattını yöneten. Buna dayanarak, System.Addins'in daha büyük uygulamalar için açıkça olduğunu düşünüyorum. SAP gibi ERP sistemleri gibi uygulamaları düşünüyorum (belki o kadar büyük değil, ama fikri anlıyorsunuz). Bu videoları izlediyseniz, System.Addins kullanmak için gereken iş miktarının çok büyük olduğunu söyleyebilirsiniz. Sisteminiz için 3. taraf eklentileri programlayan çok sayıda şirketiniz varsa ve ölüm cezası altında bu eklenti sözleşmelerinden herhangi birini kıramazsanız iyi olurdu.
Öte yandan MEF, SharpDevelop'un eklenti şeması, Eclipse eklenti mimarisi veya Mono.Addins ile daha fazla benzerlik paylaşıyor gibi görünüyor. System.Addins ve anlamak çok daha esnek olduğuna inanıyorum. Kaybettiğiniz şeyler, MEF ile AppDomain izolasyonu veya güçlü versiyonlama sözleşmeleri edinmemenizdir. MEF'in güçlü yönleri, tüm uygulamanızı bir parça bileşimi olarak yapılandırabilmenizdir, böylece ürününüzü farklı müşteriler için farklı yapılandırmalarda gönderebilirsiniz ve müşteri yeni bir özellik satın alırsa, bu özelliğin parçasını yükleme dizinine bırakmanız yeterlidir ve uygulama onu görür ve çalıştırır. Ayrıca testi kolaylaştırır. Test etmek istediğiniz nesneyi başlatabilir ve tüm bağımlılıkları için sahte nesneleri besleyebilirsiniz,
Bahsetmek istediğim en önemli nokta, System.Addins zaten çerçevede olmasına rağmen, onu kullanan insanların çok fazla kanıtı görmüyorum, ancak MEF sadece orada dahil edileceği düşünülen CodePlex'te oturuyor .NET 4 ve insanlar zaten onunla çok sayıda uygulama geliştirmeye başlıyor (kendim dahil). Sanırım bu iki çerçeve hakkında bir şeyler anlatıyor.