June 5, 2008

  Выбор AJAX-фреймворка для построения RIA-приложений

Сейчас в Ideco Software (компания, которая делает продвинутый корпоративный интернет-шлюз) мы начинаем делать одну классную штуку на базе AJAX. Это будет настоящее Rich Internet Application (увы, не знаю русский аналог термина). Подробности пока умалчиваю, ибо коммерческая тайна - да и не в них суть.

А суть в том, что сейчас я поделюсь выводами о без малого десятке полноценных AJAX-библиотек общего назначения, которые могут претендовать на роль серьезного фундамента для создания RIA-приложений.

Полный список фреймворков общего назначения можной найти здесь: http://ajaxpatterns.org/Javascript_Multipurpose_Frameworks. Я просмотрел все заслуживающие внимания и отобрал восемь библиотек, которые удовлетворяли следующим условиям:

- Достаточная зрелость самой библиотеки
- Полный комплект основных UI-виджетов (trees, grids, dialogs, windows, etc.)
- Наличие хорошей документации, сэмплов и группы поддержки
- Удобство кодирования с точки зрения программиста
- Четкая лицензионная политика

В итоге появилась следующая табличка с плюсами и минусами отобранных вариантов (поверьте на слово, что остальные не стоят и вашего внимания). Я всегда считал, что более-менее ориентируюсь в ситуации, но признаюсь честно - из этого списка знал только 2-3 фреймворка, остальные буквально “открыл” для себя.

———- ExtJS [ http://www.extjs.com ] ———-

Плюсы:

- Широко распространена
- Огромный набор качественных виджетов
- Можно собрать под себя (чтобы уменьшить объем загружаемого кода)
- Есть примеры серьезных приложений [ Jama Contour - http://www.jamasoftware.com ]
- Лицензия на разработчика, стоимость менее $300

Минусы:

- «Закос» под интерфейс Windows Vista (это также и плюс)

———- Backbase [ http://www.backbase.com ] ———-

Плюсы:

- Широкий набор виджетов
- Заточено под Enterprise, есть много мощных средств работы с данными

Минусы

- Программирование через некий аналог XML-файлов (не приветствуется среди программистов)
- Жуткая стоимость (взято из статьи 2006 года - AJAX Client Edition от $6,000 за CPU; AJAX JSF and AJAX Struts от $8,000 за CPU)

———- QooXDoo [ http://qooxdoo.org ] ———-

Плюсы:

- Распространяется по лицензии LGPL
- Качественные и легкие виджеты
- Внешний вид виджетов более спокойный и похожий на веб, чем у ExtJS
- Есть таблицы с авто-сортировкой столбцов, они плоские (похожи на веб)
- Система классов, удобный для программиста код (установка свойств в коде через вызовы методов)

Минусы

- НЕ НАШЕЛ !!!

———- Yahoo UI [ http://developer.yahoo.com/yui/ ] ———-

Плюсы:

- BSD license
- Огромный объем документации, примеров, база пользователей и групп
- Красивый и удобный код

Минусы

- Коллекция виджетов меньше, чем у продвинутых конкурентов
- Внешний вид виджетов несколько примитивный и устаревший

———- Bindows [ http://www.bindows.net ] ———-

Плюсы:

- Матерый фреймворк, много примеров серьезных приложений

Минусы

- Требует приобретения как лицензии разработчика ($195), так и дополнительно оплаты от $199 в год за один процессор - и это для МАССОВЫХ приложений (и также зависит от количества пользователей приложения)

———- TIBCO [ http://www.tibco.com/devnet/gi/ ] ———-

Плюсы:

- Open Source
- Солидный фреймворк для крупных предприятий

Минусы

- Громоздкий устаревший интерфейс
- Логика на JavaScript, но конфигурирование на XML - неудобно для программиста

———- SmartClient [ http://www.smartclient.com ] ———-

Плюсы:

- Матерый фреймворк, опыт использования в серьезных организациях
- Большой набор виджетов
- Хорошая поддержка Enterprise-технологий, таких как Java-сервера

Минусы

- Специфичный интерфейс, выглядит устаревшим
- При разработке массовых приложений нужно платить от $1950 за лицензию на девелопера

———- ActiveWidgets [ http://www.activewidgets.com ] ———-

Плюсы:

- Виджеты один в один как в Windows XP

Минусы

- Похоже их не уж так много
- Видимо, библиотека почти не развивается и не имеет большой базы пользователей
- Стоимость одной лицензии на разработчика $495

P.S: Буду очень благодарен людям, которые прокомментируют на основе собственного опыта использования тех или иных библиотек. Где-то я мог быть неточен или совсем неправ.

P.P.S: Чуть позже поделюсь, что мы выбрали для себя и почему.



Комментарии [12] - на пост “Выбор AJAX-фреймворка для построения RIA-приложений”

  1. Alex

    Сергей,

    посмотрите в сторону Dojo! Библиотека серьезно развивается в последнее время, довольно большое количество виджетов. И бесплатная к тому же. Мне нравится.

  2. Alex

    Сергей,

    посмотрите в сторону Dojo! Библиотека серьезно развивается в последнее время, довольно большое количество виджетов. И бесплатная к тому же. Мне нравится.

  3. Begemot

    Я конечно не специалист в данном вопросе, но первое что приходит в голову это JQuery. Смотрел, плохая?

  4. Pilat

    jQuery в качестве интерфейса слабовата.

  5. Sergey

    На мой взгляд при выборе UI библиотеки для серьезных проектов в первую очередь стоит обращать внимание на следующее:
    1) скорость работы (performance) (сколько времени требуется для рендеринга интерфейса)
    2) наличие/отсутствие утечек памяти (множество библиотек имеют серьезные проблемы)
    3) возможности/удобство раширения базы компонентов
    4) стандартизированность технологий / API (например DOM vs проприетарный набор функций)
    5) наличие архитектуры библиотеки (набор компонентов vs среда исполения)

    Относительно Backbase - в прошлом году они стали распространять свой продукт и под бесплатной лицензией. На сегодняшний день, на мой взгляд их фреймворк самый полный во всех отношениях и удовлетворяет основным требованиям выше.

    Также советую посмотреть фреймворк Ample SDK от http://www.clientside.ru - не менее интерсный проект…

  6. Сергей Гоцуляк

    >> 2) наличие/отсутствие утечек памяти (множество библиотек имеют серьезные проблемы)

    Видимо это на самом деле серьезный пункт, потому-что разработчики Qooxdoo очень часто упоминают, что их фреймворк не имеет утечек памяти, и имеет средства для отлова мемори ликов для пользовательских скриптов.

    Я не понимал, зачем делать на этом акцент, считая, что это априори должно быть в нормальной библиотеке, видимо - ошибался :-)

    Они же упоминают и о производительности / масшабируемости Qooxdoo - похоже, на самом деле нацелены на создание очень серьезных приложений на его базе.

    В-общем, молодцы немцы :-)

  7. Kirill

    ExtJS. Остальное Г. Выбирается такое просто: Сажусь на диванчик,
    беру свой MacBook Pro и начинаю смотреть демки в Safari… То что
    останется - можно смотреть код, а остается совсем не много.

    AJAX-фреймворк - странный термин, так как самого Ajax-а много меньше
    1% в коде приложения.

  8. the_hamster

    А при чем тут Safari? Или все на него должны равняться? В статье ни слова про Apple.

  9. Kimosabe

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

  10. DrumBoom.net

    Предложил бы использовать ещё несколько famework.
    Смотрите здесь
    http://drumboom.net/2008/06/20/dev_tools/
    Хотя для вашего случая наверное лучше всего подойдёт EXTJS.

  11. Rock

    А что вы скажете о Adobe Spry - http://labs.adobe.com/technologies/spry/ ?

  12. Sergey

    @Rock: Spry полна утечек памяти.

Оставить ответ