Презентация Романа Павлова.

advertisement
Строим корпоративные
модульные приложения с
помощью 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
Вопросы и ответы
Download