Ржевский Дмитрий Rzhevskiy Dmitry
обзор компонентных Web фреймворков (in progress)
В данном посте будт приведён обзор компонентных веб фрймворков которыя использовал или изучал для разных проектов.
Кроме компонентных сущствуют action base фреймворки. По моему мнению такие фреймворки сложнее, менее красивы и повторное использование кода в них сложнее. (Хотя в некоторых случаях повторно использовать код в них можно по другому. Напимер в Spring Web Flow возможен реюз flow.)
Wicket. С помощью Wicket можно гнерировать произвольный html (в отличии от приведённых сдесь фреймворков) и над генерирующимся кодом имеется полный контроль. Это значит что на выходе нужный html а не тот который могут генерить встроенные компоненты. Простая и понятная AJAX модель. Oчень хорошая интеграция со Spring. Есть проект Databinder для интеграции с Hibernate. Является черезвычайно быстрым и кластеризуемым. Довольно хорошо тестируется вне контейнера.
ZK, Очень интересный проект. Как известно UI лучше описывть в XML (или html). Получается декларативное писание гд и что расположно. с помощью xml хорошо описывать древовидные структуры. Дерево UI компонентов как раз и является такой структурой. Создание форм в ZK - простая и ьыстрая операция. С помощь xml аннотаций к компонентам связывание с моделью происходит просто. Логику можно писать в java (ruby, groovy, beanshell) класах (хотя можно и прямо в xml я рекомендую код в xml свести к минимуму).
К особенностям фреймворка следует отнести необычную для web приложений модель обработки событий и потоков.
К недостаткам следует отнести не такую хорошую интегрируемость с фреймворками как у Wicket.
GWT. Основно преемущество это почти "офлайновые" приложения. Обращения к серверу -только когда Нужно передать информацию на срвере. Например текстовой редактор написанный на javascript который обращатся к серверу когла нужно сохранить текст. У Google даже есть Google Gears позволяжющийе делать настоящие оффлайновы приложения: у браузера устанавливатся плагин (позволяющий сохранять данные локально в БД). и таким образом закэшированная web страничка c javascript может работать как настоящее офлайновое приложение.
Echo 2 Swing like Framework. Весь UI пишется в коде и выполняется на стороне сервера. Как и zk является serverside фреймворком. Некоторые компонтны (например дерево) реализованы в отдельном проекте виде дополнительных компонентов.
Для себя я сделал такой вывод:
нужно использовать
Wicket когда нужно написать быстрое приложение c произвольной вёрсткой работающее при больших нагрузках.
ZK когда нужно быстро написать rich приложение (похожее на оконное) и когда не большая нагрузка и хорошая сеть.
GWT когда нужно быстро написать rich приложение (похожее на оконное) и когда нагрузка очень большая.
Posted at 10:15AM мар 19, 2008 by Дима in Java | Комментарии[8]


опубликовал gri2008 Июнь 30, 2008 at 04:56 PM MSD #
Или даже не помешать а то что способствует:)
опубликовал Дима Июль 02, 2008 at 11:53 AM MSD #
опубликовал Дима Июль 02, 2008 at 12:06 PM MSD #
опубликовал gri2008 Июль 02, 2008 at 12:46 PM MSD #
опубликовал Дима Июль 02, 2008 at 05:37 PM MSD #
опубликовал Дима Июль 02, 2008 at 05:41 PM MSD #
опубликовал gri2008 Июль 02, 2008 at 06:02 PM MSD #
Кстати раньше (с год назад) я слышал что в gwt когда с сервером взаимодействует иногда тормоза бывают (если переабтся большие объекты). Сейчас это замечается?
опубликовал Дима Июль 05, 2008 at 01:00 PM MSD #