Ржевский Дмитрий Rzhevskiy Dmitry

среда мар 19, 2008

обзор компонентных 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 приложение  (похожее на оконное) и когда нагрузка очень большая.


 

Комментарии:

На www.on-map.ru можно посмотреть несколько моих приложений разработанных с помощью GWT. Судя по моему опыту GWT лучшее что есть сегодня для java, AJAX разработчика . Легко сопровождать проект. Сложности с индексированием сайта поисковыми системами. Предлагаю обсудить, что может помешать "безоблачному будущему GWT". Я пока реальных конкурентов не вижу... Библиотеки на GWT растут как на дрожжах. Все очень напоминает старт и развитие JAVA.

опубликовал gri2008 Июнь 30, 2008 at 04:56 PM MSD #

Передлагаю лучше обсуждать , что может помешать безоблачному будущему _пользователей_ GWT :)
Или даже не помешать а то что способствует:)

опубликовал Дима Июль 02, 2008 at 11:53 AM MSD #

Вообще у GWT есть конкуренты. но они в своих нишах. А интересно какие библиотеки для GWT (я сам GWT я сам на GWT не писал) наиболее интересны? Что мне нравится в GWT это то что он позволяет легко "писать" js код.

опубликовал Дима Июль 02, 2008 at 12:06 PM MSD #

Библиотек много (как всегда). Предпочитаю брать исходники конкретного компонента. Тащить всю библиотеку в JavaScript наверно нерационально и сильно нагрузит клиента. www.on-map.ru - погода НА КАРТЕ

опубликовал gri2008 Июль 02, 2008 at 12:46 PM MSD #

кстати www.on-map.ru - это твой личный проект? доход приносит? как давно запущен?

опубликовал Дима Июль 02, 2008 at 05:37 PM MSD #

В своём проекте (на работе) я использую ZK. Тоже хороший AJAX фреймворк для не сильно нагруженных серверов.

опубликовал Дима Июль 02, 2008 at 05:41 PM MSD #

www.on-map.ru - погода НА КАРТЕ мой проект. Сделал за 2-3 месяца Зарегистрировал в середине апреля. Пока посещаемость делают спецы в поисках GWT :) . В сентябре планирую написать еще несколько приложений и доработаю существующие.

опубликовал gri2008 Июль 02, 2008 at 06:02 PM MSD #

А ты не пробовал что-нибудь делать на http://j2s.sourceforge.net/ ? - давно вижу проект развивается похож на gwt но пока отзывов о его работе не слышал.
Кстати раньше (с год назад) я слышал что в gwt когда с сервером взаимодействует иногда тормоза бывают (если переабтся большие объекты). Сейчас это замечается?

опубликовал Дима Июль 05, 2008 at 01:00 PM MSD #

Опубликовать комментарий:
  • HTML Syntax: Подключен
Дмитрий Ржевский

Тэги:
1912 256 256-ой_день _край a-3 a-3.ru archlinux borodino c3350 cave caves cloud clustecloud coin eagle eclipse engine experiments glusterfs hadoop heroku holiday java java7 jboss jdk7 jelastic jelastic.com job krasnodar_region labinsk linux livejournal lucene lunar new_job new_release paas paraglider pass phone programmer_day ruby samsung samsung_c3350 search supercomputers syany text usage_share xcover а_3 вычисления день_программиста доля_рынка затмение конкурсы краснодарский кутузов лабинск линукс луна лунное_затмение новая новая_работа облако облачные орёл параплан поиск праздник программирование работа распределённая рыбалка система суперкомпьютер телефон файловая ява

Calendar



Feeds

Search

Links

Navigation


  • Я в ЖЖ    
  • MirTesen.ru
  • Я в "Linked In"

  • Мои друзья
  • Алекслёха
  • Latron

  • Links:
    log4j.ru
    Apache Maven
    моё родовое имение
    Виндсёрфинг


    Моё резюме
    My resume


    XFN Friendly

    Поиск