Prism UnityContainer и MEFContainer или где порылась собака

WPF, MVVM, Silverlight | создано: 03.02.2011 | опубликовано: 03.02.2011 | обновлено: 13.01.2024 | просмотров: 5226 | всего комментариев: 1

Очень часто на этапе выбора Framework при создании приложения возникает вопрос об эффективности выбранной платформы. Безусловно, правильно выбранный Framework существенно облегчит и ускорит разработку проекта. На данный момент существует огромное количество различных Framework, которые помогают (ускоряют) разработку на разных платформах (Windows, Web, Silverligth и другие).

В этом посте я хочу привести сравнительную таблицу относительно такого замечательного продукта как PRISM 4 позволяющего разрабатывать однавременно одно приложение под WPF и Silverlight.

Предисловие

Итак, в PRISM 4 существует два типа контейнера объектов: UnityContainer и MefContainer, причем последний появился именно в 4 версии Framework после выхода платформы NET 4.0. И тот и другой тип контейнера объектов в приложении имеют свои преимущества, которые надо знать перед тем как сделать окончательный выбор в пользу одного из типов.

Сравнительная таблица

Описание функциональной возможности Unity MEF
Регистрация типов в контейнере
Register types with the container
+ +
Регистрация экземпляра класса в контейнере
Register instances with the container
+ +
Создание экземпляра зарегистрированных типов насильно
Imperatively create instances of registered types
+ +
Иньекции зарегистрированных типов в конструктор
Inject instances of registered types into constructors
+ +
Иньекции зарегистрированных типов в свойства
Inject instances of registered types into properties
+ +
Использование аттрибутов декларативно для создания типов и зависимостей, которыми требуется управлять
Have declarative attributes for marking types and dependencies that need to be managed
+ +
Разрешение зависимостей в графе объектов
Resolve dependencies in an object graph
+ +
Разрешение типов без регистрации
Resolves concrete types without registration
+ -
Разрешение открытых обощений (дженериков)
Resolves open generics
+ -
Перехват вызовов объектов и добавление дополнительной функциональности к целевому объекту
Uses interception to capture calls to objects and add additional functionality to the target object
+ -
Обнаружение сборок в каталоге
Discovers assemblies in a directory
- +
Использование XAP-файл для скачивания и подключение сборки
Uses XAP file download and assembly discovery
- +
Перекомпановка свойств и коллекций при обнаружении новых типов
Recomposes properties and collections as new types are discovered
- +
Автоэкспорт производных типов
Automatically exports derived types
- +
Включен в .NET Framework 4.0
Deployed with the .NET Framework
- +

Делайте выводы, Господа.

Комментарии к статье (1)

Спасибо, очень нужная таблица. Выходит, что MEF значительно лучше адаптирован к Prism. Кто-нибудь может прокомментировать из собственного опыта?