Pull to refresh

Microsoft PRISM 4 MEF – ни слова в простоте

image
Конец 2010 года ознаменовался очередным, поистине революционным обновлением библиотеки модульной разработке WPF \ Silverlight приложений. Снабженная богатой документацией она не может ни притягивать взгляды .Net разработчиков, и, между тем, высокий барьер вхождения не способствуют развития интереса данной технологии. Нечто подобное в последнее время случалось с Silverlight в 2008 году, когда студия не позволяла выполнить рутинные операции по созданию минимального приложения, и потому вход в Rich интерфейс был доступен только избранным, которым хватило терпения разбираться в хитросплетениях XAML вязи. Поставляемые в пакете Prism 4 примеры не дают возможности постигать технологию от простого к сложному, и, как правило, вызывают больше вопросов, чем позволяют понять как же это все же можно заставить работать. Поиск в интернете так же не привносит ясности в суть вопроса.
Чтоб облегчить задачу начала разработки и себе и своим коллегам я создал стартовый шаблон для VS2010.
Шаблон состоит из следующих частей:
  • Shell: Оболочка имеющая контролы-контейнеры, в которые будут загружены модули.
  • Infrastructure: библиотека, которая включает в себя часто используемые классы для всего комплекса.
  • Modules: FirstModule и SecondModule разработанные с применением паттерна MVVM.


image

FirstModule представляет собой TextBlock, загружаемый в MainRegion.
SecondModule реализует Button, отрабатывающую нажатие посредством Command, загружаемая в AdditionalRegion.

Были намеренно использованы самые простые модули, чтоб не отвлекать разработчика от синтаксиса, связанного с реализацией непосредственно процесса модульной загрузки.

Список областей для размещения компонентов прописаны в Infrastructure.Core.Classes/RegionNames.cs. В шаблоне используется только два, но в действительности, количество ограничено лишь полетом фантазии дизайнера.

Infrastructure.Core.Classes/RelayCommand.cs – класс служащий для разрешения имен комманд.
PrismMEF.Core.Classes/LoggerAdapter – класс обеспечивающий ведение логов, в том числе, и внутри компонентов. Принципы использования довольно наглядно демонстрируются в примерах к библиотеке.
Наконец класс Bootstrapper – ключевой класс шаблона, в котором и происходит загрузка компонентов в методе ConfigureAggregateCatalog.

В шаблоне присутствуют сборки Prism 4 для WPF. Оставлены они там намерено, чтоб не тратить время на разворачивание приложения.

Думаю, не понадобится более 15 минут, чтоб на основе шаблона создать вполне функциональное приложение с десятком работающих модулей.

Ссылка на скачивание шаблона: http://dump.ru/file/5092149
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.