java vaadin отзывы - Какую структуру я должен выбрать - Seam, Wicket, JSF или GWT?





5 Answers

Я использовал GWT с версии 1.4 и JSF с тех пор, как появилась спецификация 2.0.

GWT - это клиентская среда, она генерирует JavaScript с Java. Ваша архитектура будет чистым клиент-сервером, что означает:

  • Лучше всего использовать крупнозернистые услуги
  • Все объекты, которые отправляются на клиентскую сторону, должны быть полностью сериализуемыми (это означает, что нет ленивой нагрузки или шаблона OpenSessionInView)
  • Начиная с GWT 2.0 вы можете создавать свои gui с помощью xhtml, что намного проще в отношении стиля и структурирования HTML
  • GWT склоняется к хорошей архитектуре, если вы ее испортите, это будет плохо для рефакторинга
  • Perfect History (кнопка «Назад назад», «Закладки для закладки») сложно , вам, вероятно, придется сворачивать самостоятельно, хотя ее легко взломать

JSF - это основанная на компонентах инфраструктура, с дизайном первого вида (если вам нравится код):

  • Легче сделать некоторый тип webapps (stateful, как корзина)
  • JSF + Seam имеют поддержку для разговоров (подумайте, как страницы, похожие на мастера, которые сохраняют состояние на нескольких страницах)
  • Вы можете реализовать OpenSessionInView, в зависимости от вашего стека. Вероятно, это не рекомендуется, если вы используете EJB для служебного / бизнес-уровня
  • JSF2 имеет превосходную поддержку AJAX, а с набором компонентов, например RichFaces, вы можете создавать приятные webapps
    • Но если вы хотите изысканное поведение JavaScript, вам придется написать javascript
  • JSF отслеживает текущее состояние пользовательского интерфейса на стороне клиента или на стороне сервера. Это компромисс между сетевым трафиком или памятью сервера.

Продолжить:

  • GWT более подходит для веб- приложений (думаю, gmail), которые требуют наилучшей производительности на стороне клиента. Легко писать пользовательские компоненты (вы пишете Java), и поскольку ваша серверная часть - это только уровень сервиса, вы можете быть полностью безгосударственным на стороне сервера.
  • JSF более подходит для приложений CRUD, которые лучше подходят для компонентов, ориентированных на компоненты: подумайте о системе бронирования отелей / рейсов, интернет-магазине с корзиной и т. Д.
рейтинг фреймворков библиотеки

Я обсуждаю, использовать ли Seam, Wicket, JSF или GWT в качестве основы для моего уровня представления в проекте Java.

Я сузил свой выбор веб-фреймворков Java до этого подмножества, основываясь на соображениях рынка труда, новизне технологии и рекомендациях других пользователей SO.

Какие факторы следует принимать во внимание при решении этих проблем?




Seam - это среда приложения, а не слой презентации. Первоначально он был разработан для того, чтобы сделать JSF менее болезненным, но превратился в более общую концепцию инъекций зависимостей.

Я считаю, что вы можете использовать Seam с JSF, Wicket и GWT. Поддержка JSF является первичным и превосходным; Я не уверен, насколько хорошо поддерживаются два других.

Поскольку фокус ваших критериев, по-видимому, является конкурентоспособностью ваших навыков, я бы предложил попробовать Seam и JSF через Facelets. JSF является хорошо принятым стандартом и на самом деле приятен в использовании, если вы используете Facelets. Вы можете использовать функциональность AJAX с помощью Richfaces и Ajax4jsf. Шов более или менее стандартизован через JCP.




В долгосрочном плане я бы рекомендовал использовать технологии, поддерживаемые спецификацией Sun. До сих пор это доказало, что дает множество реализаций, приводящих к выбору (часто также реализация с открытым исходным кодом), а поведение, как правило, очень хорошо определено.

Это поможет вам в сценарии сопровождения, который, надеюсь, - ваш код тоже закончится вовремя. Хорошо написанный код живет вечно :)

В этом конкретном случае я бы предложил JSF. Я только пробовал реализацию Apache 1.1, но было больно быть на вершине JSP. Мы скоро пересмотрим его - я ожидаю, что посмотрю на JSF на лице.




Если вы рассматриваете только рынок труда, вам следует выбрать JSF. Но я полагаю, что будущее RIA принадлежит GWT и gwt, как технологии на стороне клиента.

Я думаю, что самый очевидный потенциал GWT, он лучше масштабируется, чем технологии уровня представления на стороне сервера, такие как JSF, калитка. Потому что серверу не нужно хранить состояние клиента, а также использовать мощность процессора клиента. Это огромная выгода, вам не нужно сериализовать состояние клиента между серверными компьютерами для достижения отказоустойчивой системы.




Я начал с JSF (1.1 и 1.2), и было так больно, что я решил изменить в следующих проектах. Я немного исследовал, и я решил попробовать Wicket, и это было так приятно. Также я пробовал JSF 2, но все равно то же самое.

Оба они являются компонентами, но вещи с Wicket легки, а JSF - полный беспорядок.

Каретка над JSF:

  • В Wicket HTML HTML. JSF имеет свои собственные метки разметки. H: dataTable (для таблиц) - нонсенс. Поверьте мне, Sun Engineers пришлось выпить, когда он был разработан.
  • В Wicket такие вещи, как безопасность,
  • С помощью JSF на навигационной панели отображается предыдущий URL-адрес. Действительно странно.
  • JSF кажется мне очень тяжелым, и с такими библиотеками, как Rich или Prime, еще больше.
  • Иногда кажется невозможным узнать, что происходит. Вы всегда орали на свой компьютер, потому что вы не знаете, почему JSF делает.

JSF через Wicket:

  • В Wicket вы собираетесь написать больше Java (привязка к HTML). По крайней мере, ваша IDE предоставит поддержку рефакторинга и проверки.
  • Управление ресурсами в Wicket немного сложно.
  • Существует гораздо больше документации и поддержки JSF

Одним из распространенных недостатков является то, что размер сеанса является проблемой (поскольку там хранятся графические компоненты).

В общем, если вам нужно решить только между Wicket и JSF, не сомневайтесь для меня, Wicket .




Related