Строим корпоративные модульные приложения с помощью PRISM Роман Павлов О себе • В IT c 2006 года • В DataArt c 2011 года (.Net Developer) • ua.linkedin.com/in/romanpav • MCPD/MCSD Developer • Roman.Pavlov@dataart.com Что такое корпоративное приложение? Это приложение, которое может иметь: сложный и богатый UI, визуализации, сложную бизнес-логику разнородные источниками данных и внешние системы интеграции многослойную архитектуру несколько команд разработки долгий и сложный жизненный цикл... Пример корпоративного приложения Демо Корпоративное приложение: сложности Все меняется и требования – в том числе Как интегрировать в проект несколько команд Как обеспечить гибкость и расширяемость Сложности Сложности Наш ответ - PRISM Набор библиотек Документация Сэмплы How-To’s Сообщество – Codeplex Исходники aka.ms/prism-wpf-code MVVM c помощью PRISM Команды Bindable Base View Model Location Provider User Interaction Prism.MVVM.dll MVVM c помощью PRISM: Команды DelegateCommand (с поддержкой async handlers) CompositeCommand Save All Order Save Order Save Order Save Корпоративное приложение – набор модулей Каталог модулей Определение в коде, конфигурационном файле, поиск на диске. Интеграция с контейнером зависимостей Bootstrap cценарии Принципы разбиения на модули: Жизненный цикл модулей Загрузка модулей IModule – инициализация модулей Коммуникация между модулями События Общий сервис Общий ресурс Коммуникация между модулями: События Не связаны напрямую – подписчики, публикаторы не знают друг друге Поддержка потоков Фильтры Weak Reference Инициализация приложения: Bootstrapper Контейнеры зависимостей Регистрация типов (MEF) Разрешение типов (MEF) Композиция UI View Discovery View Injection Region Manager Композиция UI: View discovery Композиция UI: View Injection Навигация State-based навигация (VSM) Навигация на основе взаимодействия с пользователем View-based навигация INavigationAware Параметры Итог: ключевые концепции PRISM Модули Bootstrapper Контейнер зависимостей Отделение представления и логики Команды События Композиция UI Навигация Коммуникация Версии PRISM Давно – Prism 1, 2 ,2.2 , 4 2012 г. – Prism 4.1 (Silverlight 5, WPF 4, Win Phone 7.x) 2013 г. – Prism for Windows Runtime 2014 г. – Prism 5 for WPF (.Net 4.5) http://compositewpf.codeplex.com/SourceControl/latest Ресурсы www.microsoft.com/CompositeWPF Developer's Guide to Microsoft Prism 5.0 on MSDN. http://aka.ms/prism-wpf-doc Prism 5 Code + Samples and How-Tos - http://aka.ms/prism-wpf-code Prism for WinRT (http://msdn.microsoft.com/enus/library/windows/apps/xx130645.aspx ) Prism for Win Phone 7.x - http://msdn.microsoft.com/enus/library/gg490765.aspx Спасибо за внимание! Roman.Pavlov@dataart.com Вопросы и ответы