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