Prism UnityContainer и MEFContainer или где порылась собака
WPF, MVVM, Silverlight | создано: 03.02.2011 | опубликовано: 03.02.2011 | обновлено: 13.01.2024 | просмотров: 5243 | всего комментариев: 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. Кто-нибудь может прокомментировать из собственного опыта?