Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Выбор Web-Framework (ajax) GWT или JSF


Автор: intr 24.1.2007, 06:02
Надо выбрать Web-Framework с использование ajax для разработки системы дистанционного обучения на основе стандарта SCORM 2004 (третья версия системы).
Требования:
  •  Количество пользователей в системе 20 тысяч, одновременно работает около 1 тысячи
  •  Много административного интерфейса, управление пользователями, группами, курсами и т.д. (Структура пользователей и подразделений похожа на Active Directory)
  •  Построение отчетов
  •  Необходимо редактировать html, редактирование курсов на сервере
  •  Необходимо динамически получать и отправлять на сервер большую объектную модель в формате JavaScript, т.е. объектная модель должна быть доступна на клиенте используя JavaScript. Должен применяется ajax (javascript), динамическая загрузка данных через flash и applet не подходит.
На данный момент:
  •  хранение данных планируется в hibernate
  •  реализация уровня сервиса через TreeCache 
  •  Работать это будет в JBoss
  •  Web-Framework пока не определен.
Вопрос: Что лучше для данной задачи GWT или JSF?
GWT - вроде неплох, но:
  •  Размер скачиваемых файлов для пользователя большой, хотя и скачивается только при первом обращении
  •  Нет механизма layout`s вроде sitemesh и titles
JSF - тоже вроде неплох, но:
  •  Использование ajax4jsf нетривиально, не говоря уж о необходимости писать свои renderer для красивого интерфейса
  •  Написание своих компонентов это вообще отдельная история
Еще вопрос: может есть что-то лучше GWT и JSF для данной задачи?


Автор: Tony 24.1.2007, 12:18
Посмотри webwork2.

Автор: stg_unholy 24.1.2007, 18:19
я использовал ajax4jsf + myfaces. особых проблем не было (только случаи из серии "сам дурак"). Все было хорошо и гладко, проблемы возникли только при попытке ковсему этому еще tiles прикрутить.

Автор: tux 24.1.2007, 18:27
Еще один довод в пользу ajax4jsf - у нас на форуме есть кому проконсультировать.

Автор: alexsmirnov 25.1.2007, 01:30
Вообще то, спор кто лучше - это скорее из разряда "Что лучше - водка или селедка". Лучше вместе и с девочками :-)
В том смысле, что GWT практически не имеет средств для интеграции с серверной частью и развитого механизма повторного использования кода ( вроде компонентов ),  а у JSF реально большие грабли с  построением клиентской части. Плюс, засунуть немалое приложение в ОДНУ страницу - малореально, а средств подгрузки кода в GWT пока нет ( правда, в планах вроде присутствует ).
  Я попробовал сделать связку JSF+GWT, самому понравилось но как-то популярностью это не пользуется. Хотя основная задача - решить проблему с разработкой клиентскогй части интерфейса на мой взгляд решается идеально. И избавляет от огромных файлов JavaScript  - приложение легко делится на отдельные страницы. 
По моему личному мнению - вообще идеальная связка для подобной задачи Jboss Seam + JSF 1.2 + facelets + GWT. С одним большим НО - JSF не отличается хорошей производительностью, на 1000 клиентов потребуется нехилый сервер.
 Ajax4jsf 1.1 в любом случае будет выпущен к 1 февраля, правда боюсь некоторые вещи в него вставить не успею. Поскольку 5 февраля он должен стать основой для библиотеки компонентов ezFaces ( https://ezfaces.dev.java.net/ - там набор интерфейсных компонентов большой.
 Самое принципиальное изменение - все переведено на Maven2, и в проект включен Component Development Kit. С ним создание JSF компонента - дело 5 минут, все сведено к 3-м файлам :
 Абстрактный класс компонента, всю JSF-специфику сделает генератор , 
 JSP-подобный шаблон для рендерера
 XML-файл с описанием. От него надеюсь избавиться, с использованием аннотаций в компоненте.
В результате Maven собирает jar, который сразу можно включить в проект.
 В общем, если есть вопросы - пишите. А по ajax4jsf любые пожелания приветствуются ( и особенно критика - сразу понятно что исправлять ). Хотя в силу загруженности на вопросы не всегда успеваю отвечать :-(

Автор: intr 26.1.2007, 04:03
Цитата(alexsmirnov @ 25.1.2007,  06:30)
Я попробовал сделать связку JSF+GWT, самому понравилось но как-то популярностью это не пользуется. 

Пример связки JSF+GWT можно посмотреть? smile 

Автор: alexsmirnov 26.1.2007, 12:22
https://ajax4jsf.dev.java.net/nonav/ajax/gwt/gwt-cdk.html - описание и пара демок.
Там же все ссылки для загрузки

Автор: intr 26.1.2007, 14:40
Цитата(alexsmirnov @ 26.1.2007,  17:22)
https://ajax4jsf.dev.java.net/nonav/ajax/gwt/gwt-cdk.html - описание и пара демок.
Там же все ссылки для загрузки

Спасибо посмотрим.

Еще какиенибудь концептуальные идей есть?

Автор: onsh76 27.1.2007, 04:09
Цитата

Еще какиенибудь концептуальные идей есть?
 
intr, 
Спасибо за созданную тему. На днях как-то собирался создать подобную,  потому как сейчас стою перед похожим выбором, тоже в поиске  вебфрэймоворка, который бы отвечал примерным требованиям указанным уважаемым intr, плюс ко всему имел встроенных полезных штукенций, облегчающих жизнь девелоперам. 

Не помню где, скорее всего просматрия в очередной раз theserverside или infoq, я обнаружил ревью http://www.virtuas.com/articles/webframework-sweetspots.html.  

Цитата

Еще вопрос: может есть что-то лучше GWT и JSF для данной задачи?

Прочитав ревью про веб фрэймворки, я заинтересовался двумя неизвестными, а именно: Seam и Wicket. 

На мой взгляд, на словах выглядит неплохо:

Wicket:
- Transparent Back Button Support;you can write web applications that support the back button with very little work.
- Transparent, Scalable Clustering Support
- eliminates the need to manage HttpSession attributes by hand.All objects stored in the session can automatically participate in clustering replication.
- PageableListView supports navigation links for large lists.
- Out of the box tree component for navigating and selecting nodes.

Seam:
- back button support;
- support for complex window stateful navigation;
- integration with jBPM , etc etc

У меня вопрос к коллегам: имел ли уже кто-то дело с обоими?  Как дело выглядит на практике? 

Мой предыдущий опыт разработки веб приложений основывается на SpringMVC. В целом фраймворк оставил хорошее впечатление, достаточно простой и гибкий, но мне не понравилось что нет встроенной имплементации back button support (надо прикручивать Spring WebFlow)...


Автор: alexsmirnov 27.1.2007, 16:55
Seam очень приятная конструкция - но надо понимать, что это по сути расширение для JSF, добавляющее к ним массу очень полезных функций :
- прозрачная работа с EJB3/Hibernate как с JSF Beans, через аннотации.
- "Conversation scope" - привязка значений к последовательности страниц, сохранение значений при redirect и back button ( правда, в JSF 1.1_02, 1.2xxx , MyFaces 1.1.xxx больштнство проблем к возвратом решено )
- Интеграция с JBPM и другими продуктами Jboss.
На мой взгляд имеет смысл для серьезных проектов вроде описанного в начале.
Вообще, по опыту - сейчас серьезные корпоративные заказчики в штатах воспринимают практически только 2 решения для web-слоя : Struts & JSF ( причем JSF фактически только последний год ). Еще можно с некоторым успехом предлагать Spring, а вот GWT пока решаются очень немногие пробовать.
Как говорил Бисмарк , "на своих ошибках учатся только дураки" - так что есть смысл оценивать тенденции.

Автор: intr 30.1.2007, 03:48
Всем спасибо за идеи, мысли, ссылки. Вопрос снят. smile 

Автор: Wowa 26.2.2007, 15:34
Цитата(alexsmirnov @  27.1.2007,  14:55 Найти цитируемый пост)
Вообще, по опыту - сейчас серьезные корпоративные заказчики в штатах воспринимают практически только 2 решения для web-слоя : Struts & JSF ( причем JSF фактически только последний год ). Еще можно с некоторым успехом предлагать Spring, а вот GWT пока решаются очень немногие пробовать.


А почему Spring отстает?

Автор: tux 26.2.2007, 15:50
Цитата(Wowa @  26.2.2007,  15:34 Найти цитируемый пост)
А почему Spring отстает? 

Потому что Struts и JSF разрабатывают люди из Sun. ИМХО, конечно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)