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

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