23-24
Download
1 / 26

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


  • 98 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

23-24 мая, 2012 г.

Microsoft


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)


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

Варианты разработкикорпоративных бизнес-приложений

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

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

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

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

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

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

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

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


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

  • Масса времени и $$$ на рутинные задачи, тестирование и сопровождение

  • Высокий уровень знаний разработчиков

  • Любая сложность под любые нужды клиента

  • Полный контроль за разработанным ПО


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

  • Масса времени и $$$ на изучение скриптов настройки или использование консультантов

  • Типовой пользовательский интерфейс, трудно настраиваемый под нетиповые задачи

  • Нет проблем с качеством, так как готовые продукты обычно уже протестированы

  • Скорее всего не придется программировать


E x press a pp f ramework 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 в одно и то же время!

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


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<IPerson> 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,...,...{}


< разработкиApplication>

<Views>

<DetailViewId="Order_DetailView">

<Layout>

<LayoutGroupId="Main"ImageName="BO_Order">

<LayoutItemId="UnitPrice"RelativeSize="25"Index="0" />

<LayoutItemId="Qty"RelativeSize="25"Index="1" />

<LayoutItemId="Discount"RelativeSize="25"Index="2" />

<LayoutItemId="ExtendedPrice"RelativeSize="25"Index="3" />

</LayoutGroup>

</Layout>

</DetailView>

</Views>

</Application>

Динамическая мета модель пользовательского интерфейса приложения

  • XAFML - это аналог XAML

  • Позволяет настроить UI для двух платформ

  • Упрощаетразвертывание благодарявозможностям широкой настройки в runtime

  • Использование DC для расширения мета модели


Автоматическое создание пользовательского интерфейса

  • Готовые Desktop и Web клиенты с CRUD формами,меню, навигацией и т.п.на базе бизнес моделей

  • Представления бизнес моделей и их полей зависят от типа

  • UIавтоматически подстраивается подлюбые изменения модели


Модульность пользовательского интерфейса

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

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

  • Использовать модули «из коробки»

  • Создавать свои собственные модули

  • Настроить, расширить или заменить любые запчасти модулей

  • Создать модуль, использующий одну базу кода для нескольких платформ!


Богатый пользовательского интерфейсанабор модулей «из коробки»

  • Создание и печать отчетов

  • Анализ и аудит данных

  • Система безопасности

  • Управление бизнес процессами

  • Контроль ввода данных

  • Форматирование данных

  • Локализация и многое другое

  • Также в наличии бесплатные 3rd-party модули


Visual studio
Хорошая интеграция пользовательского интерфейсав среду разработки VisualStudio


Runtime
Широкие возможности пользовательского интерфейсанастройки приложения в runtime

  • Настройка внешнего вида, команд, меню и навигации

  • Настройка расположения, контроля данных, правил доступности, форматирования и полей на формах

  • Управление пользователями и правами доступа

  • Управление бизнес процессами

  • Создание отчетовдля печати и анализа

  • Создание информационных досок и многое другое


[ пользовательского интерфейса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

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

Вопросы


Полезная информация пользовательского интерфейса

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

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

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

Мой E-mail: [email protected]

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

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


Пожалуйста пользовательского интерфейса

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

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


ad