slide1
Download
Skip this Video
Download Presentation
23-24 мая , 2012 г. Microsoft

Loading in 2 Seconds...

play fullscreen
1 / 26

23-24 мая , 2012 г. Microsoft - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

23-24 мая , 2012 г. Microsoft. Как повысить эффективность разработки корпоративных бизне с - приложений c e X press A pp F ramework. Денис Гаравский. [email protected] | @ DennisGaravsky | www.devexpress.com. .NET Team, DevExpress. Перед тем как начать….

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '23-24 мая , 2012 г. Microsoft' - kuper


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
c e x press a pp f ramework

Как повысить эффективность разработкикорпоративныхбизнес-приложенийc eXpressApp Framework

Денис Гаравский

[email protected] | @DennisGaravsky | www.devexpress.com

.NET Team, DevExpress

developer express xaf
Перед тем как начать…

Developer Expressиз России??!

И что еще за XAF??????

developer express
Developer Express – это …

Визуальные компоненты

VCL, .NET

(Windows Forms, ASP.NET Web Forms, ASP.NET MVC, WPF, Silverlight)

Различные виды редакторов, списков и таблиц,

графики и отчеты, календари и планировщики,

элементы навигации, меню и многое другое

Инструменты для разработчиков с 1998г.

Расширения IDE

CodeRush, !Refactor,

App Framework & ORM

eXpress Persistent Objects (XPO)

eXpressApp Framework (XAF)

slide5
Вы можете заказать написание всего ПО «с нуля» у независимой компании-разработчика или привлечь для этого свой собственный ИТ-отделВарианты разработкикорпоративных бизнес-приложений

Вы можете купить готовый продукт на базе MicrosoftDynamics или 1С и поручить его настройку консультантам. Скорее всего не придется писать код.

Создание всего программного обеспечения «с нуля»

Покупка и настройкаготового программного продукта

Что-то среднее между ними

Разработчикам еще нужно писать код,

но большая часть функциональности

уже идет «из коробки», с возможностью

полной замены или гибкой настройки.

slide6
Создание всего программного обеспечения «с нуля»
  • Масса времени и $$$ на рутинные задачи, тестирование и сопровождение
  • Высокий уровень знаний разработчиков
  • Любая сложность под любые нужды клиента
  • Полный контроль за разработанным ПО
slide7
Покупка и настройкаготового программного продукта
  • Масса времени и $$$ на изучение скриптов настройки или использование консультантов
  • Типовой пользовательский интерфейс, трудно настраиваемый под нетиповые задачи
  • Нет проблем с качеством, так как готовые продукты обычно уже протестированы
  • Скорее всего не придется программировать
e x press a pp f ramework xaf
Использование eXpressApp Framework(XAF)

Разработка «с нуля» XAF Настройка готового ПО

  • Набор шаблонных решений популярных бизнес задач
  • Быстрый старт и низкий порог вхождения
  • Автоматическое создание Desktop и Webинтерфейсов
  • Дает возможность сфокусироваться на бизнес логике
  • Не ограничивает и всегда позволяет «копнуть глубже»
slide9
Демонстрация

Создаем приложения для управления задачами

с eXpressApp Framework

slide10
А что-нибудь посложнее CRUD-форм?

Корпорация «Галактика» (http://galaktika.ru)

использует платформу XAFARI на базе XAF

для решений по управлению бюджетами, активами, производствомиперсоналом предприятия

slide11
Насколько XAF может быть эффективен?

е-библиотека (автор, книга, читатель) ≈ 0.5 часа

Outlook (контакты, задачи, календарь и др.)≈ 1час

CRM приложение (с отчетами) ≈ 1 день

Работа с XAF не требует обширных знаний

1 разработчик c XAF ~ N разработчиковбез XAF

1 годовая лицензия XAF≈1 месячная ЗП

slide12
Архитектура

Схема XAF приложения (MVC)

Распределенные XAF приложения (N-Tier)

slide13
Объектно-ориентированноеуправление данными

Зрелый XPO ORM для доступа к данным и бизнес логики

Поддержка более чем 15ти популярных RDBMS

Стандартные и новые подходы для создания бизнесмоделей:

  • Code-First
  • Database-First
  • Model-First
  • UI-First– одновременное построение бизнес моделей и настройка экранов пользовательского интерфейса
  • Domain Components (DC)– технология, облегчающая создание повторно используемых бизнес моделей

Поддержка Entity Framework с версии 12.1 (выходит в июне)

slide14
UI-First

Создаем бизнес модели и настраиваем UI в одно и то же время!

Демонстрация

domain components dc i
Domain Components (DC) - принцип трех I

Interface vsСlass

Легкое комбинирование за счет «множественного наследования»

Independence from ORM

Простое тестирование и сопровождение

Inversion of Control (IoC)

Бизнес логика добавляется через Dependency Injection

Компоновка в объекты выбранной ORM происходит runtime

domain components
[DomainComponent]

public interfaceIAccount {

[RuleRequiredField, RuleUniqueValue]

[RuleRegularExpression(@“SomeCoolRegEx")]

string Email { get; set; }

[FieldSize(25)]

[ImmediatePostData]

[Appearance("Len(Password) < 6", FontColor = Color.Red)]

string Password { get; set; }

}

ПримерыDomain Components

[DomainComponent, ImageName("BO_Person")]

public interface IPerson {

stringLastName { get; set; }

stringFirstName { get; set; }

stringFullName { get; }

DateTimeBirthday { get; set; }

}

[DomainLogic(typeof(IPerson))]

publicclassPersonLogic {

public static string Get_FullName(IPerson self) {

returnstring.Format("{0} {1}",self.FirstName, self.LastName);

}

}

[DomainComponent]

public interface ICompany{

[RuleRequiredField]

string Name { get; set; }

[Aggregated]

IList Staff { get; }

[DataSourceProperty("Staff")]

[RuleRequiredField(TargetCriteria = "Staff.Count > 0")]

[Appearance("Staff.Count = 0",BackColor = Color.Yellow)]

IPerson Manager { get; set; }

}

ПроизводныйDomainComponent

  • Интерфейс

IPerson

  • Интерфейс

IAccount

ИнтерфейсICompany

Класс логики

IPerson

  • Класс логики
  • IAccount
  • Класс логики
  • ICompany

[DomainComponent]interfaceICRMCustomer:IAccount, ICompany,INotes, IPhones,...,...{}

slide17

Динамическая мета модель пользовательского интерфейса приложения
  • XAFML - это аналог XAML
  • Позволяет настроить UI для двух платформ
  • Упрощаетразвертывание благодарявозможностям широкой настройки в runtime
  • Использование DC для расширения мета модели
slide18
Автоматическое создание пользовательского интерфейса
  • Готовые Desktop и Web клиенты с CRUD формами,меню, навигацией и т.п.на базе бизнес моделей
  • Представления бизнес моделей и их полей зависят от типа
  • UIавтоматически подстраивается подлюбые изменения модели
slide19
Модульность

Разрабатывая с eXpressApp Framework,

вы «играете»в конструктор, где можно:

  • Использовать модули «из коробки»
  • Создавать свои собственные модули
  • Настроить, расширить или заменить любые запчасти модулей
  • Создать модуль, использующий одну базу кода для нескольких платформ!
slide20
Богатыйнабор модулей «из коробки»
  • Создание и печать отчетов
  • Анализ и аудит данных
  • Система безопасности
  • Управление бизнес процессами
  • Контроль ввода данных
  • Форматирование данных
  • Локализация и многое другое
  • Также в наличии бесплатные 3rd-party модули
runtime
Широкие возможности настройки приложения в runtime
  • Настройка внешнего вида, команд, меню и навигации
  • Настройка расположения, контроля данных, правил доступности, форматирования и полей на формах
  • Управление пользователями и правами доступа
  • Управление бизнес процессами
  • Создание отчетовдля печати и анализа
  • Создание информационных досок и многое другое
slide23
[Test]

public void TestExtendedPrice() {

IDataStoreds = newInMemoryDataStore(

AutoCreateOption.DatabaseAndSchema

);

IDataLayerdal = newSimpleDataLayer(ds);

using(UnitOfWorkuow = newUnitOfWork(dal)) {

Order order = new Order(uow) {UnitPrice= 50m, Qty= 5, Discount = 0.5d

};

uow.CommitChanges();Assert.AreEqual(125m, order.ExtendedPrice);

}

}

public class Order : XPObject {

publicOrder(Session session) :

base(session) { }

public decimal UnitPrice;

public int Qty;

public double Discount;

public decimal ExtendedPrice {

get{ returnUnitPrice * (decimal)

((1 - Discount) * Qty);

}

}

}

Легкоетестирования созданных приложений

TDD-friendlyза счет слабосвязанных функциональных блоков

Unit Test Runner инструмент для централизованного запуска и управления тестами

Easy Testинструмент для функционального тестирования приложений

Easy Test Script Recorderсоздание теста на базе действий пользователя в приложении

e x pre ss a p p f ramework
:)Как повыситьэффективность разработки корпоративныхбизнес-приложенийс eXpressAppFramework

Жду вас в зоне «Спроси эксперта»!

Вопросы

slide25
Полезная информация

Сайт разработчика:www.devexpress.com

Страница XAF: http://bit.ly/3OMTR

XAF на Хабре: http://bit.ly/KyhdW3

Мой E-mail: [email protected]

Ждем вас на стенде DevExpress

для дальнейшего общения и розыгрыша призов!

slide26
Пожалуйста

Оцените доклад и мастерство докладчика.

Форма для оценки находится в вашем инфопакете.

ad