Я рекомендую прослушивать подкасты Herding Code с помощью Glenn Block. ( Часть 1 и Часть 2 ). Он углубляется в эту тему, гораздо более подробно, чем мы можем здесь ответить.
Это, как говорится -
MEF и Unity - две вещи, которые частично перекрываются. Prism в своей форме по умолчанию использует Unity для внедрения зависимостей. Вы можете использовать Prism с MEF, если хотите, вместо этого.
Prism больше предназначен для создания композитных приложений. MEF, с другой стороны, о расширяемости. Здесь определенно есть совпадение целей, но основной движущий фактор другой.
- В случае с Призмой это все об организации известного кода.
- MEF, с другой стороны, предназначен для обнаружения нового кода и его правильного внедрения.
Самое новое руководство, которое я видел, с которым я полностью согласен, было просто опубликовано в блоге Гленна Блока : «Если вы начинаете с нуля, вы можете использовать MEF для модульности, а также общие аспекты вашего композита Приложение. Где уместно, вы можете вытащить биты призмы. "