Ajax
28 April 2007

Java + Struts + AJAX (библиотеки)

искал библиотеки для внедрения ajax-enabled функционаьлности в проект на java и пытался составить сравнительную характеристику. может, кому-нибудь будет интересно. Основной упор делался на то, что проект изначально был написан с использованием Struts.

может, формат и не очень подходящий, но какой уж есть. мнение субъективно.

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

0
5.2k 19
Comments 21
Top of the day