Выбор 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: Чуть позже поделюсь, что мы выбрали для себя и почему.
June 5, 2008 - 2:32 -
Сергей,
посмотрите в сторону Dojo! Библиотека серьезно развивается в последнее время, довольно большое количество виджетов. И бесплатная к тому же. Мне нравится.
June 5, 2008 - 2:32 -
Сергей,
посмотрите в сторону Dojo! Библиотека серьезно развивается в последнее время, довольно большое количество виджетов. И бесплатная к тому же. Мне нравится.
June 5, 2008 - 10:58 -
Я конечно не специалист в данном вопросе, но первое что приходит в голову это JQuery. Смотрел, плохая?
June 5, 2008 - 13:04 -
jQuery в качестве интерфейса слабовата.
June 5, 2008 - 16:03 -
На мой взгляд при выборе UI библиотеки для серьезных проектов в первую очередь стоит обращать внимание на следующее:
1) скорость работы (performance) (сколько времени требуется для рендеринга интерфейса)
2) наличие/отсутствие утечек памяти (множество библиотек имеют серьезные проблемы)
3) возможности/удобство раширения базы компонентов
4) стандартизированность технологий / API (например DOM vs проприетарный набор функций)
5) наличие архитектуры библиотеки (набор компонентов vs среда исполения)
Относительно Backbase - в прошлом году они стали распространять свой продукт и под бесплатной лицензией. На сегодняшний день, на мой взгляд их фреймворк самый полный во всех отношениях и удовлетворяет основным требованиям выше.
Также советую посмотреть фреймворк Ample SDK от http://www.clientside.ru - не менее интерсный проект…
June 5, 2008 - 21:22 -
>> 2) наличие/отсутствие утечек памяти (множество библиотек имеют серьезные проблемы)
Видимо это на самом деле серьезный пункт, потому-что разработчики Qooxdoo очень часто упоминают, что их фреймворк не имеет утечек памяти, и имеет средства для отлова мемори ликов для пользовательских скриптов.
Я не понимал, зачем делать на этом акцент, считая, что это априори должно быть в нормальной библиотеке, видимо - ошибался
Они же упоминают и о производительности / масшабируемости Qooxdoo - похоже, на самом деле нацелены на создание очень серьезных приложений на его базе.
В-общем, молодцы немцы
June 12, 2008 - 0:46 -
ExtJS. Остальное Г. Выбирается такое просто: Сажусь на диванчик,
беру свой MacBook Pro и начинаю смотреть демки в Safari… То что
останется - можно смотреть код, а остается совсем не много.
AJAX-фреймворк - странный термин, так как самого Ajax-а много меньше
1% в коде приложения.
June 27, 2008 - 14:34 -
А при чем тут Safari? Или все на него должны равняться? В статье ни слова про Apple.
July 10, 2008 - 22:57 -
Я не маковод, сафари использую только чтобы проверить работает ли в нем сайт. Но не мог не заметить как он работает с жаваскриптом, это просто высший класс.
Никаких притензий, скрипты под ним всегда работают без лишних доводок, и скорость потрясающая, фаерфокс не дотягивает, ие - в глубокой заднице.
July 14, 2008 - 11:25 -
Предложил бы использовать ещё несколько famework.
Смотрите здесь
http://drumboom.net/2008/06/20/dev_tools/
Хотя для вашего случая наверное лучше всего подойдёт EXTJS.
July 16, 2008 - 21:09 -
А что вы скажете о Adobe Spry - http://labs.adobe.com/technologies/spry/ ?
July 17, 2008 - 15:23 -
@Rock: Spry полна утечек памяти.