Является ли MEF структурой внедрения зависимостей? - PullRequest
32 голосов
/ 16 ноября 2008

Недавно анонсированная управляемая расширяемая среда (MEF) .NET 4.0 - это среда внедрения зависимостей? Будет ли Microsoft Unity из шаблонов и практик устареть в 4.0? Как MEF сравнивается с такой платформой, как Unity?

Ответы [ 4 ]

27 голосов
/ 16 ноября 2008

Специально рассмотренный во 2-м Keynote для PDC 2008 Скотта Гатри, MEF имеет гораздо больше общего с такими вещами, как расширение Visual Studio 2008 и других приложений, без необходимости использования всех COM и более старых технологий ... Очень хорошая демонстрация расширения текстового издания в VS2008 было показано среди прочего. Начните примерно час и 15 минут с основного выступления 2-го дня (http://www.microsoftpdc.com)), и вы получите непосредственную информацию, но, в основном, если вы собираетесь «создать приложение со встроенными точками расширяемости, которые можно легко обнаружить, и который поддерживает обнаружение расширений: «тогда MEF - это то, что вам нужно. UNITY - это то, что вам нужно для высококачественного контейнера IoC, который выполняет DI, а также другие решения, но имеет отличную и простую интеграцию с Enterprise Library.

Что касается Unity в EL4.0 (сейчас 4.1 - http://msdn.microsoft.com/en-us/library/dd203099.aspx), это фактически IoC, который находится поверх ObjectBuilder версии 2, а EL4.1 имеет точки расширения для унификации конфигурации различных приложений EL блоки с Unity.

MEF против Unity - все равно что сравнивать яблоки с апельсинами. Здесь есть несколько замечательных и конкретных подкастов / веб-трансляций, которые полностью описывают UNITY, и я настоятельно рекомендую:

DotNetRocks Show # 393 http://www.dotnetrocks.com/default.aspx?showNum=393 DNR.tv Шоу # 126 http://www.dnrtv.com/default.aspx?showNum=126

1 голос
/ 19 марта 2011

Вот разговор о MEF / MAF / Unity / Prism, который я нашел просветляющим.

1 голос
/ 16 ноября 2008

Я видел одну запись, которая звучала как одна, но больше информации ( Скотт Гатри на PDC2008 [Video / wmv]) заставил меня думать, что это нечто большее, чем инфраструктура внедрения зависимостей. Из звуков вещей он может использоваться для внедрения зависимости, но также делает больше.

0 голосов
/ 07 сентября 2012

Я хотел бы добавить одну строку mopre, которую я только что прочитал, что MEF не является частью Inversion of Control (так как dependecny называется синонимом IOC), но он реализует ее . Когда мы реализуем IOC с помощью внедрения зависимостей, мы обычно используем Unity, который помогает обнаруживать статические зависимости, но MEF позволяет нам увеличить расширяемость нашего приложения без статической настройки компонентов, даже если они могут быть обнаружены во время выполнения. Есть и другие ссылки, которые могут помочь вам больше: Разница между Unity и MEF

...