Использование DevExpress eXpressApp Framework

Начинается новый проект — веб приложение. Выбирается технология на которой он будет реализован. Как вариант рассматриваем DevExpress eXpressApp Framework.
Вопросы:
1. Использовали ли Вы DevExpress eXpressApp Framework в рабочих проектах?
2. Если использовали, общие впечатления от DevExpress eXpressApp Framework (понравился/не понравился, буду использовать для новых проектов/никогда бы больше не стану его использовать).
3. Насколько хорошо framework будет работать в Web Farm, Web Garden и Windows Azure?
4. Насколько легко добавлять в приложение, реализованное с помощью DevExpress eXpressApp Framework, свою функциональность, которая не включена в framework (джаваскрипты, новые контролы или контролы третьих фирм, свой дизайн страниц, вместо автоматической генерации)?
5. Сколько времени требуется на обучение ASP. NET разработчика для работы с этой библиотекой?

Спасибо.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

[Disclaimer: I work for DevExpress]

@Alex:
Заметил ваше обсуждение через Google Alerts и решил немного помочь вам с выбором.
A1:
Да:-)
Например внутри у нас есть несколько приложений написанных на ксаф, в том числе и вебовских. Используем для всех возможных нужд нашего предприятия, включая, работу с клиентами, иссуй и билд трекинг систему, HR, админку для наших публичных веб сайтов и так далее. Наши клиенты также успешно используют ксаф во многих областях бизнеса. Также по отзывам клиентов ксаф приложения довольно часто используются для правительственных организаций в Штатах, Канаде и других странах. Пользуются популярностью также предложения ксаф решений как SaaS, например вот действующий проект в России: www.expressit.ru/
Сразу хочу сказать, что если говорим о Веб приложениях, построенных на ксаф, они мягко говоря не заточены специально для публичного использования, а все же главным образом предназначены для Интранет. Конечно можно сделать и Фейсбук на ксаф с миллионом пользователей, но тогда придется сильно потратиться на железо ну и на кастомизацию самого фреймвека, так как он все таки заточен для создания data-centric бизнес приложений.
Получить больше фидбека по вопросу и от наших клиентов можно у нас на форуме, ну или погуглив

(например www.earthcape.com/) правда сильно — как уже сказал такова специфика основной целевой ниши.

A2:
Очень нравится:-)
Сложно говорить за свой же продукт, но большинство наших клиентов сев один раз на ксаф подседают на него навсегда и имеют неплохой доход с этого. Хотя есть и такие, которые не понимают быстро преимущеста и предпочитают ксафу стандартный процесс разработки, например в вашем случае XPO + ASP. NET компоненты, за что мы их и не виним — каждый выбирает себе тулзы по душе и по задаче.

Как уже сказал выше, получить больше фидбека по этому вопросу и от наших клиентов можно у нас на форуме, ну или погуглив, уже слегка — есть обзоры в блогах и например на СтекОверфлоу, правда на английском.

A3:
Кратко если, то ответ «Уже хорошо, но могло бы быть и лучше».

Распространился по этому вопросу в комментах к ответам других участников сообщества в этом триде.

A4:
Поняв один раз архитектуру фреймвека, все становится очень легко. Про learning curve отвечу ниже еще.
Кратко, возможно абсолютно все. Фреймвек очень богатый и гибкий. Кастомизить можно все, включая все, что вы перечислили. Абсолютно. Есть также на английском мой старый ответ на похожий вопрос в статье www.devexpress.com/...r/p/K18118.aspx

Надеюсь будет полезен. Если есть более конкретные вопросы про то как сделать X если у меня есть Y, то лучше обратиться в сапорт. Там всегда рады будут помочь советом, а где и примером.

A5:
Думаю месяца будет достаточно чтобы довольно глубоко въехать во фреймвек и понять как он устроен, и начать эффективно его использовать для решения своих бизнес задач. Хотя это еще зависит как подходить к вопросу изучения. Я давал свои рекоммендации по этому поводу в одноименной статье: www.devexpress.com/...r/p/K18119.aspx

Настоятельно рекомендую начать с тюториалов и потом поглубже окунуться в концепты. Ну и сапорт — ваш верный друг и помощник. Все реально продвинутые ксаф пользователи, которых я знаю, в начале активно пользовались сапортом, чтобы быстрее все понять и потом через месяц или два вообще уже не нуждались в поддержке, ну кроме там особо заковыристых и специфичных сценариев. Также кстати у нас довольно активный форум где люди шарят свой опыт. Развита система блогов, статей, готовых примеров и видео. Дока тоже вроде хорошая и все постоянно улучшается.

В общем Download, Compare, Decide. Если есть еще вопросы, то велкам, буду рад вам помочь.

Спасибо,

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

DevExpress Support, R& D eXpressApp Framework Team

Денис, вы писали, что для использования с облаками нужно использовать sticky sessions. Поддерживается ли это инфраструктурой Windows Azure?

Да
archive.msdn.microsoft.com/stickyrouter
Больше деталей по настройке я думаю можно найти в МСДН или гугле.

Т. е. сам по себе Windows Azure sticky sessions не поддерживает. Значит и eXpressApp Framework не поддерживает Windows Azure без stickyrouter-а.

Поправьте меня, если я ошибаюсь.

Нет, я бы сказал иначе: Ажуре плохо заточен для statefull приложений, хотя и поддерживает их. Как я уже сказал выше, вы можете ознакомиться с тем, что он поддерживает или нет сети. Вот нашел еще один хороший блог для вас: dunnry.com/...ndowsAzure.aspx

Возвращаясь к нашему фреймвеку, так как ксаф вебовское приложение является statefull, то для использования его в Ажуре (а также любых других подобных решений, подразумевающих использование нескольких веб серверов) есть несколько основных сценариев:
1. Использовать один ВМ инстанс (в зависимости от потребностей приложения вы сможете выбрать из трех видов, отличающихся по мощности);
2. Использовать несколько ВМ инстансов + реализовать роутинг или т. н. «залипание сессий».

Как вы понимаете, роутинг к одному конкретному серверу в течение жизни сессии необходим для нормальной работы statefull приложения. Роутинг решения официально доступны как и от самих Майкрософт, так и от независимых разработчиков. Например я кидал вам две ссылки выше. Их гораздо больше, достаточно лишь погуглить и по-моему у них в Ажуре СДК даже что-то есть для этого.

Если есть еще вопросы по ксаф, то велкам — буду рад вам помочь.

А если веб сервер (ы) будут сохранять / читать состояние сессии используя SQL сервер (в базу ASPState) — это решает проблему?

Ага, и прощай производительность.

Ну так — палка о двух концах:)

А чего, кстати «прощай»? По-хорошему, чтение переменных сессии следует сделать только один раз при вызове страницы, и закешировать в коде. А потом уже обращаться к ним как к переменным, а не постоянно дергать напрямую. И это также рекомендуют в Azure делать, потому-что чтение переменной 10000 раз будет стоить 1 цент.

Чтение переменной сессии 10000 раз столько стоит, i mean

Ну вот именно чтение всех переменных сессии для каждого запроса и убивает производительность, т. к. ботлнеком становится БД, особенно в ажуре, где нельзя партишинить/шардить бд.

В других системах есть более продвинутые способы: например кешировать сессию в мемкешед, реплицировать ее на все или на некоторые ноды путем малтикаст сообщений и т. д., конфигурить залипание сессий опять же, т. е. все это костыли ажура на самом деле, поэтому нужно юзать gae.

Да, несомненно, это бы решило проблему более легкой скалабилити на несколько веб серверов, но к сожалению это не работает в случае с нашим фреймвеком...

В текущей версии мы вынуждены хранить в сессии некоторые данные, которые не являются сериализуемыми, а это является непреодолимым препятствием на пути к использованию сешн стейт модов отличных от ИнПроц и других подобных плюшек типа ажуровской AppFabric и так далее.

Как бы там ни было, мы планируем облегчить жизнь нашим пользователям и избавиться от этого ограничения в будущем. Пока же можно успешно использовать доступные сценарии скалабилити, которые я описал ранее.

Вот здесь есть полезная инфа по настройке балансировки нагрузки в данном случае:

www.microsoft.com/...7.mspx?mfr=true

Client Affinity — это залипание сессии? В этом случае ИМХО может балансировать, а может и не балансировать (если многие на один сервер залипнут)

БАГ! Форум переколбасил ссылку.

Это было — Preserving Session State in Network Load Balancing Web Server Clusters на www.microsoft.com/technet

Спасибо за Ваши ответы!

@Alex:
Всегда пожалуйста!
Вот еще кстати, думаю будет вам интересно (к вашему первому вопросу):
www.cnews.ru/...11/03/11/431549

«Новые продукты разрабатываются на платформе XAF (среда исполнения eXpressApp Framework, в свою очередь, использующая Microsoft. NET, прим. CNews) и используют набор классов, уже существовавших в „Галактика ERP“. »

По запросам наших пользователей, мы сделали вебинар на эту тему:

Deploying XAF on Azure (tv.devexpress.com/...onAzureWebinar

Надеюсь эта информация будет вам полезна.

Какие, нафиг, я извиняюсь, облака и веб фермы? XAF только под винформс и асп. нет

documentation.devexpress.com/...tomDocument2670

А разве ASP. NET не работает в облаках и на веб фермах?

Так то оно так... Только вот для хранения persistаnce objects в базе данных поддержка SQL Azure реализована в версии XPO, начиная с версии 9.3
Вот тут в тему много написано:
community.devexpress.com/...ms/t/81522.aspx

Т. е. последняя версия XAF позволяет работать в облаках и фермах (сейчас это 10.0.4)...

Любая веб апликуха может работать в облаках и фермах:

покупаете у вашего любимого провайдера N инстанцов виндовса, сетапите на них вашу апликуху, настраиваете load balancing используя любимый вами и вашим сервис провайдером тул, при неумении апликухи работати в stateless mode, настраиваете залипание сессии на инстанц.

Да, только нужно будет еще заплатить за инстанс SQL сервера, плюс оплачивать доллар за мегабайт транзакций хранилища.
Сервис будет золотой.

blogs.msdn.com/...ness-model.aspx

За гигабайт, и учитывая что оно будет четыре раза реплицироваться — вполне нормальная цена.

Но если такое не устраивает, идите к любому vps/dedicated servers провайдеру, покупайте инстанц винды, ставьте туда скл сервер.

Storage Transactions @ $0.01 / 10K

1 доллар за мегабайт внутреннего трафика — по-моему слишком дофига

Это не 10 киллобайт, а 10 тыс. запросов: These are billed at a rate of $0.01 for 10,000 (10k) transaction requests.

Кстати, забыл добавить, МС — плохие, юзайте GAE!

10 тыс. запросов на чтение / запись за доллар? Ну еще лучше, аж страшно представить, сколько оно натикает при работе с базой ms sql server (наверное, поэтому и sql сервер там свой)

10 тыс. запросов стоят 1 цент, читай внимательно.

Все равно дорого, и 12 центов в час за один инстанс — тут надо чтоб проектт себя оправдывал, кроме того — нет выхода в Инет — все, хана, потому что все данные — в облаке.

Золотые слова! Load balansing + sticky sessions рулят как раз в случае XAF.

ИМХО, на фермах будет работать любая XPO (www.west-wind.com/...Windows2003.asp это подтверждает), потому что мы можем в инфраструктуру включить microsoft sql server, или любую другую DBMS. А в облаках (он же — Azure) используется только SQL Azure — проекция традиционного SQL Server на облако, предоставляющая возможности для работы с базой данных посредством интернет-сервисов. Ограничение чисто в этом.

[Disclaimer: I work for DevExpress]
Позволю себе с вами не согласиться. XAF с начала своего сотворения (уже больше 6ти лет прошло) поддерживал и поддерживает Windows Forms и ASP. NET. Так что облака и прочее — это все возможно и наши клиенты с успехом пользуются этим. Например, недавно общался с клиентом, который имеет несколько веб серверов, предоставляемых Amazon EC2, которые отлоадбалансированы. Побольше почитать про то, как с этим обстоят дела в XAF можно в документации: documentation.devexpress.com/...tomDocument3172
Там же есть про текущие ограничения (вынуждены хранить состояние в сессии) и так же инфа про то, как их обойти. Конечно, как вы понимаете, все же есть еще большая площадь для улучшений и мы не собираемся останавливаться. Мы постоянно совершенствуем функционал и поднимаем перформанс.

Забыл сказать, что также в планах у нас поддержка WPF (еще в 2009 году успешно завершили спайк-солюшн на эту тему — сделали XAF WPF толстый клиент) и SL UI (сейчас находится в разработке) + mobile platforms.

Спасибо,

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

DevExpress Support, R& D eXpressApp Framework Team

Підписатись на коментарі