искал библиотеки для внедрения ajax-enabled функционаьлности в проект на java и пытался составить сравнительную характеристику. может, кому-нибудь будет интересно. Основной упор делался на то, что проект изначально был написан с использованием Struts.
может, формат и не очень подходящий, но какой уж есть. мнение субъективно.
JSF (Java Server Faces)
| Совместимо с Struts? |
НЕТ |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
ДА |
| На что повлияет использование решения |
Процесс разработки |
Ссылка |
http://java.sun.com/javaee/javaserverfaces/ajax/index.jsp |
Основная цель
Улучшить разработку web-приложений и упростить создание "тяжелых" приложений с разветвленным пользовательским интерфейсом.
Требует серьезного кодирования на JS?
Нет в случае использовании стандартных компонентов и реализаций (существуют реализации, которые изначально поддерживают ajax).
Достоинства
Унифицирует процесс создания компонентов;
Упрощает повторное использование компонентов;
Четко определенный процесс разработки;
Интегрировано в визуальные средства разработки
Недостатки
Требует обучения и рефакторинга web-слоя;
Риск
Для реализованных на Struts приложениях требует переработки web-слоя;
Комментарии
JSF - современное решения для сложных web-приложений. Компонентно-ориентированное. JSF содержит свой собственный процесс (цикл) разработки, который помогает четко определить роли разработчиков в проекте. Существует несколько визуальных сред разработки (IDEA, NetBeans, Sun Java Studio Creator 2), которые помогают построить приложение с использование JSF.
Dojo
| Совместимо с Struts? |
Да (не зависит от серверной части) |
| Server side? |
НЕТ |
| Ориентированно на компонентную модель? |
НЕТ |
| На что повлияет использование решения |
JS-функциональность |
| Ссылка |
http://dojotoolkit.org/demos |
Основная цель
Разделяет общий js код, упрощает добавление виджетов.
Требует серьезного кодирования на JS?
ДА
Достоинства
Не влияет на серверную часть
Недостатки
Требует дополнительного кодирования для вызова бизнес-методов с клиентской части
Комментарии
Выглядит, как ориентированное больше на дизайн (внешний вид/анимация).
jMaki
| Совместимо с Struts? |
ДА |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
ДА |
| На что повлияет использование решения |
Подход к разработке UI компонентов |
Ссылка |
https://ajax.dev.java.net/jmaki-screenshots.html |
Основная цель
Агрегирует компоненты, написанные с использованием различных библиотек;
интегрирует их в j2ee среду
Требует серьезного кодирования на JS?
ДА
Достоинства
Унифицирует процесс создания компонентов
Недостатки
Требует дополнительного кодирования для вызова бизнес-методов с клиентской части
Комментарии
Библиотека позволяет интегрировать уже существующие компоненты.
Google Web Toolkit
| Совместимо с Struts? |
НЕТ |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
ДА |
| На что повлияет использование решения |
Процесс разработки |
Ссылка |
http://code.google.com/webtoolkit/ |
Основная цель
Позволяет реализовывать web приложения, как будто это Swing-based решение;
Требует серьезного кодирования на JS?
НЕТ (серьезно, нет необходимости писать js код вообще!)
Достоинства
Позволяет реализовывать web приложения, как будто это Swing-based решение;
Легко поддается отладке
Недостатки
Конвертирует страницы в нередактируемый код
Риск
Сложно изменить внешний дизайн страниц;
Не совместимо со Struts;
Комментарии
Интересное решение, которое позволяет реализовывать компоненты и бизнес-логику полностью на java, без js.
DWR
| Совместимо с Struts? |
ДА |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
НЕТ |
| На что повлияет использование решения |
Подход к разработке ajax-enabled UI компонентов |
Ссылка |
http://getahead.org/dwr/ |
Основная цель
Позволяет вызывать бизнес-методы с клиента. Основанная на JS RPC.
Требует серьезного кодирования на JS?
ДА
Достоинства
Легко вызывать бизнес-методы с клиентской части;
Легко в использовании
Комментарии
DWR - это RPC (remote procedure calling - удаленный вызов процедур, как RMI, например). Реализует только то, что от нее требуется - упроцает обмен сообщениями между клиентом и сервером.
AjaxTags
| Совместимо с Struts? |
ДА |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
Нет, решение основано на JSP тэгах, который изначально не поддерживают компонентную модель разработки, тем не менее, решение довольно элегантно и хорошо интегрируется в JSP. |
| На что повлияет использование решения |
Подход к разработке UI компонентов |
| Ссылка |
http://ajaxtags.sourceforge.net/ |
Основная цель
Позволяет внедрять ajax-enabled решения в приложение на основе JSP.
Требует серьезного кодирования на JS?
ДА/НЕТ. Основная задача библиотеки - снизить количество JS кода. Однако, на самом деле, требует JS кодирования для кастомизации.
Достоинства
Легко применимо к Struts-based приложениям;
ZK
| Совместимо с Struts? |
НЕТ |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
ДА |
| На что повлияет использование решения |
Процесс разработки |
Ссылка |
http://www.zkoss.org/ |
Основная цель
Предоставляет унифицированную модель написания компонентно-ориентированных RIA (rich internet application)
Требует серьезного кодирования на JS?
НЕТ, однако JS заменен другим языком.
Достоинства
Внушительное community;
Хорошо документированно;
Имеет набор полезных компонентов;
Недостатки
Требует обучения и рефакторинга web-слоя;
Риск
Не совместимо со Struts
Комментарии
Выглядит довольно хорошо, но все еще не является стандартом. Требует перехода на совершенно новый подход в разработке.
Struts Shale
| Совместимо с Struts? |
ДА |
| Server side? |
ДА |
| Ориентированно на компонентную модель? |
ДА |
| На что повлияет использование решения |
Процесс разработки |
Ссылка |
http://www4.java.no/javazone/2005/presentasjoner/KitoMann/MigratingfromStrutstoJSF-60Minutes.pdf |
Основная цель
Позволяет упростить процесс мигрирования Struts-приложения на JSF
Требует серьезного кодирования на JS?
НЕТ, в общем случае (при использовании стандартных реализации)
Достоинства
Создано для того, чтобы легко мигрировать Struts-based приложения на JSF;
Унифицирует процесс создания компонентов;
Упрощает повторное использование компонентов;
Четко определенный процесс разработки;
Интегрированно в визуальные средства разработки
Недостатки
Требует обучения и рефакторинга web-слоя;
Риск
Требуется переработка web-слоя;
Комментарии
Выглядит хорошо для разработки Struts-based приложений, в ходе которой команда столкнулась с увеличением сложности пользовательского интерфейса. Позволяет снизить риск примиграции на JSF.
Дополнительные ресурсы:
TD_GEN_Web2.0_AJAX.pdf
комментарии (21)