То, что Даниэль сказал, хорошо. Я бы добавил:
Если вы смотрите видео о System.Addins, они явно говорят об очень больших проектах. Он говорит об одной команде , управляющей хост-приложением, о другой команде , управляющей каждым надстройкой, и третьей команде , управляющей контрактом и конвейером. Исходя из этого, я думаю, что System.Addins явно для больших приложений. Я имею в виду такие приложения, как ERP-системы, такие как SAP (возможно, не такие большие, но вы поняли). Если вы смотрели эти видео, вы можете сказать, что объем работы с System.Addins очень велик. Было бы хорошо, если бы у вас было много компаний, программирующих сторонние надстройки для вашей системы, и вы не можете разорвать любой из этих контрактов надстроек под страхом смерти.
С другой стороны, MEF, похоже, имеет больше сходства со схемой надстроек SharpDevelop, архитектурой плагинов Eclipse или Mono.Addins. Это гораздо проще понять, чем System.Addins, и я считаю, что это гораздо более гибко. То, что вы теряете, это то, что вы не получаете изоляцию AppDomain или контракты на строгое управление версиями из коробки с MEF. Сильные стороны MEF заключаются в том, что вы можете структурировать все приложение как составную часть, чтобы вы могли поставлять свой продукт в разных конфигурациях для разных клиентов, и если покупатель приобретает новую функцию, вы просто помещаете деталь для этой функции в каталог установки. и приложение видит его и запускает. Это также облегчает тестирование. Вы можете создать экземпляр объекта, который хотите протестировать, и передать ему фиктивные объекты для всех его зависимостей, но когда он запускается как составное приложение, процесс компоновки автоматически объединяет все реальные объекты.
Наиболее важный момент, который я хотел бы упомянуть, заключается в том, что, хотя System.Addins уже находится в фреймворке, я не вижу большого количества свидетельств того, что люди его используют, но MEF просто сидит на CodePlex, предположительно для быть включенным в .NET 4, и люди уже начинают создавать множество приложений с ним (включая меня). Я думаю, что это говорит вам кое-что о двух фреймворках.