MAF против MEF против Prism

Я смотрел несколько руководств по MEF или Prism с Silverlight, но также выполнял некоторую работу с MAF (System.AddIn) на стороне и думал, что это тоже может сработать. Я вижу, что Prism и MEF - это почти одно и то же, но у Prism есть агрегатор событий.

Есть ли у кого-нибудь мысли о том, насколько хорошо MAF работает с Silverlight?


person Ryan    schedule 09.07.2010    source источник


Ответы (2)


Подобный пост ... Выбор между MEF и MAF (System.AddIn)

Что касается MEF и PRISM, различия выходят за рамки существования агрегатора событий - в частности, расширяемости, обнаружения и различных концепций модульности. На данный момент это несколько дополнительных продуктов. Версия PRISM 4 от 1 июня поддерживает MEF (вместо Unity) в качестве контейнера DI. У Гленна есть хорошее объяснение MEF здесь.

person Brandon Copeland    schedule 09.07.2010
comment
Забавно, но я просто попытался сослаться на System.AddIn в моем проекте silverlight 4, а его там нет :( так что, думаю, я не могу использовать то, что отстой ... - person Ryan; 13.07.2010

Итак, MEF - это не то же самое, что PRISM. Prism - это среда композиции пользовательского интерфейса, которую можно использовать с WPF, Silverlight, WP7, Surface и, возможно, с приложениями Metro Style для Win8 на основе C #. С другой стороны, MEF - это общая структура компонентной композиции, которая действует как надежное решение для внедрения зависимостей. Под композицией я подразумеваю, что он может обнаруживать ваши компоненты во время выполнения и связывать их вместе. MEF особенно полезен с его функцией перекомпоновки - в основном система может изменять свое поведение во время выполнения. Представьте, что вы добавляете новую dll в папку bin приложения, эта dll сразу же подбирается и появляются новые функции!

Когда дело доходит до Silverlight, MEF отлично работает! Вы можете загрузить модули призмы с помощью MEF. Наконец, MEF для SL поставляется с DeploymentCatalog - он позволяет загружать дополнительные XAP-файлы во время выполнения, и, предполагая, что вы используете функцию перекомпоновки, вы можете добавлять новые функции для приложения по мере того, как пользователь работает с приложением, таким образом вы можете сэкономить пропускную способность на запуск приложения, так как вам не нужно загружать все сразу.

Подводя итог, MEF отлично работает с SL, а также с Prism. Настоятельно рекомендуется тандем!

person pwlodek    schedule 25.09.2011
comment
Представьте, что вы добавляете новую dll в папку bin приложения, эта dll сразу же подбирается и появляются новые функции! Это нормально. Но удаление dll или выгрузка - это небольшая проблема с MEF. - person gljivar; 14.12.2012