Ответ 1
[ПРИМЕЧАНИЕ. Я работаю над MonoDevelop, который использует Mono.Addins, но я обсуждал различия между MEF и Mono.Addins широко с Glenn Block от команды MEF на прошлой неделе]
MEF основан на составлении кода, хотя базовые абстракции очень гибкие. Напротив, Mono.Addins основан на дереве метаданных, где вы можете подключить данные/метаданные/код к богатой схеме вашего определения, поэтому расширения могут добавлять данные/метаданные, а также код.
Mono.Addins предоставляет вам систему управления добавлением/упаковкой/репозиторией/обновлением из коробки. Для MEF в этот момент вам придется создавать свои собственные.
MEF имеет несколько более низкий барьер для входа, и намного больше работ по дизайну перешло в его удобство использования и лежащие в основе абстракции. Кроме того, он является частью .NET 4, поэтому у него будет гораздо больше сообщество пользователей, разрабатывающих с ним/для него.
В этот момент, если вам нужно подключить данные/метаданные, а также код, и вы хотите иметь готовую систему упаковки, я бы рекомендовал Mono.Addins, иначе я бы рекомендовал MEF. Идя вперед, вероятно, что функции Mono.Addins будут реализованы на MEF, поэтому, вероятно, будет путь миграции к MEF.