Вопрос по dependency-injection – MEF (управляемая структура расширяемости) против IoC / DI

55

Какие проблемы решает MEF (Managed Extensibility Framework), которые не могут быть решены с помощью существующих контейнеров IoC / DI?

Ваш Ответ

3   ответа
26

которые вы знаете, т. Е. Я знаю, что я буду использовать один регистратор в модульном тесте и другой регистратор в моем приложении. MEF фокусируется на тех вещах, которые вы не делаете, в моей системе может отображаться от 1 до n регистраторов.

53

служить "подключаемым модулем"; фреймворк, когда автор приложения и автор плагина (extension) разные и не имеют особых знаний друг о друге за пределами опубликованного интерфейса (contract) библиотека.

Другая проблемная область MEF адресов, которая отличается от обычных подозреваемых IoC, и одной из сильных сторон MEF является обнаружение [расширения]. Он имеет множество расширяемых механизмов обнаружения, которые работают с метаданными, которые можно связать с расширениями. С сайта MEF CodePlex:

"MEF allows tagging extensions with additonal metadata which facilitates rich querying and filtering"

В сочетании с возможностью задержки загрузки помеченных расширений, возможностью опроса метаданных расширенияprior загрузка открывает дверь для множества интересных сценариев и существенно расширяет возможности, такие как [плагин] версионирование.

MEF также имеет «контрактные адаптеры»; которые позволяют расширениям быть «адаптированными»; или «преобразованный»; (from type > to type) с полным контролем над деталями этих преобразований. Адаптеры контрактов открывают еще один творческий фронт относительно того, что именно «открытие» значит и влечет за собой.

Опять же, MEFs 'намерение' сосредоточен на анонимности расширения плагинов, что сильно отличает его от других контейнеров IoC. Таким образом, хотя MEF можно использовать для композиции, это всего лишь небольшое пересечение его возможностей по сравнению с другими IoC, с которыми, как я подозреваю, мы увидим много кровосмесительного взаимодействия в будущем.

У вас очень четкий выбор слов.
11

инуты Хансельмана.

http://www.hanselminutes.com/default.aspx?showID=166

Похожие вопросы