DevCon•12 // msdevcon.ru 23-24 мая, 2012 г. Microsoft #msdevcon Как повысить эффективность разработки корпоративных бизнес-приложений c eXpressApp Framework Денис Гаравский .NET Team, DevExpress dennis@devexpress.com | @DennisGaravsky | www.devexpress.com // DevCon•12 Перед тем как начать… Developer Express из России??! И что еще за XAF?????? #msdevcon Developer Express – это … Инструменты для разработчиков с 1998 г. Визуальные компоненты VCL, .NET (Windows Forms, ASP.NET Web Forms, ASP.NET MVC, WPF, Silverlight) Различные виды редакторов, списков и таблиц, графики и отчеты, календари и планировщики, элементы навигации, меню и многое другое Расширения IDE CodeRush, !Refactor, App Framework & ORM eXpress Persistent Objects (XPO) eXpressApp Framework (XAF) Варианты разработки корпоративных бизнес-приложений Создание всего программного обеспечения «с нуля» Покупка и настройка готового программного продукта Что-то среднее между ними Создание всего программного обеспечения «с нуля» - Масса времени и $$$ на рутинные задачи, тестирование и сопровождение - Высокий уровень знаний разработчиков + Любая сложность под любые нужды клиента + Полный контроль за разработанным ПО Покупка и настройка готового программного продукта - Масса времени и $$$ на изучение скриптов настройки или использование консультантов - Типовой пользовательский интерфейс, трудно настраиваемый под нетиповые задачи + Нет проблем с качеством, так как готовые продукты обычно уже протестированы + Скорее всего не придется программировать Использование eXpressApp Framework (XAF) Разработка «с нуля» XAF Настройка готового ПО Набор шаблонных решений популярных бизнес задач Быстрый старт и низкий порог вхождения Автоматическое создание Desktop и Web интерфейсов Дает возможность сфокусироваться на бизнес логике Не ограничивает и всегда позволяет «копнуть глубже» Демонстрация Создаем приложения для управления задачами с eXpressApp Framework А что-нибудь посложнее CRUD-форм? Корпорация «Галактика» (http://galaktika.ru) использует платформу XAFARI на базе XAF для решений по управлению бюджетами, активами, производством и персоналом предприятия Насколько XAF может быть эффективен? е-библиотека (автор, книга, читатель) ≈ 0.5 часа Outlook (контакты, задачи, календарь и др.) ≈ 1 час CRM приложение (с отчетами) ≈ 1 день Работа с XAF не требует обширных знаний 1 разработчик c XAF ~ N разработчиков без XAF 1 годовая лицензия XAF ≈ 1 месячная ЗП Архитектура Схема XAF приложения (MVC) Распределенные XAF приложения (N-Tier) Объектно-ориентированное управление данными Зрелый XPO ORM для доступа к данным и бизнес логики Поддержка более чем 15ти популярных RDBMS Стандартные и новые подходы для создания бизнес моделей: Code-First Database-First Model-First UI-First – одновременное построение бизнес моделей и настройка экранов пользовательского интерфейса Domain Components (DC) – технология, облегчающая создание повторно используемых бизнес моделей Поддержка Entity Framework с версии 12.1 (выходит в июне) UI-First Создаем бизнес модели и настраиваем UI в одно и то же время! Демонстрация #msdevcon Domain Components (DC) - принцип трех I Interface vs Сlass Легкое комбинирование за счет «множественного наследования» Independence from ORM Простое тестирование и сопровождение Inversion of Control (IoC) Бизнес логика добавляется через Dependency Injection Компоновка в объекты выбранной ORM происходит runtime Примеры Domain Components Интерфейс IPerson Интерфейс IAccount Интерфейс ICompany Класс логики IPerson Класс логики IAccount Класс логики ICompany Производный Domain Component [DomainComponent] interface ICRMCustomer : IAccount, ICompany, INotes, IPhones, ... , ... {} Динамическая мета модель пользовательского интерфейса приложения XAFML - это аналог XAML Позволяет настроить UI для двух платформ Упрощает развертывание благодаря возможностям широкой настройки в runtime Использование DC для расширения мета модели Автоматическое создание пользовательского интерфейса Готовые Desktop и Web клиенты с CRUD формами, меню, навигацией и т.п. на базе бизнес моделей Представления бизнес моделей и их полей зависят от типа UI автоматически подстраивается под любые изменения модели Модульность Разрабатывая с eXpressApp Framework, вы «играете» в конструктор, где можно: Использовать модули «из коробки» Создавать свои собственные модули Настроить, расширить или заменить любые запчасти модулей Создать модуль, использующий одну базу кода для нескольких платформ! Богатый набор модулей «из коробки» Создание и печать отчетов Анализ и аудит данных Система безопасности Управление бизнес процессами Контроль ввода данных Форматирование данных Локализация и многое другое Также в наличии бесплатные 3rd-party модули Хорошая интеграция в среду разработки Visual Studio Широкие возможности настройки приложения в runtime Настройка внешнего вида, команд, меню и навигации Настройка расположения, контроля данных, правил доступности, форматирования и полей на формах Управление пользователями и правами доступа Управление бизнес процессами Создание отчетов для печати и анализа Создание информационных досок и многое другое Легкое тестирования созданных приложений TDD-friendly за счет слабосвязанных функциональных блоков Unit Test Runner инструмент для централизованного запуска и управления тестами Easy Test инструмент для функционального тестирования приложений Easy Test Script Recorder создание теста на базе действий пользователя в приложении КАК ПОВЫСИТЬ ЭФФЕКТИВНОСТЬ РАЗРАБОТКИ КОРПОРАТИВНЫХ БИЗНЕС-ПРИЛОЖЕНИЙ С EXPRESS :) APP FRAMEWORK Вопросы Жду вас в зоне «Спроси эксперта»! Полезная информация Сайт разработчика: www.devexpress.com Страница XAF: http://bit.ly/3OMTR XAF на Хабре: http://bit.ly/KyhdW3 Мой E-mail: dennis@devexpress.com Ждем вас на стенде DevExpress для дальнейшего общения и розыгрыша призов! Пожалуйста Оцените доклад и мастерство докладчика. Форма для оценки находится в вашем инфопакете.