Плюсы и минусы различных технологий Java Web Presentation Layer - PullRequest
16 голосов
/ 11 февраля 2009

В настоящее время я работаю над веб-приложением, которое интенсивно использует JSF и IceFaces. У нас были некоторые дискуссии о переходе на другой уровень презентации, и я решил перенести обсуждение в SO и посмотреть, что думают эксперты.

Мне любопытно, если кто-нибудь мог бы взвесить плюсы и минусы различных технологий уровня представления Java. Если вы работали только с одним, скажите, почему вы любите это или ненавидите. Если вы работали с несколькими, поделитесь своими впечатлениями о том, как они складываются друг против друга.

Наши рассматриваемые технологии:

  • ICEfaces
  • JSF (без IceFaces)
  • GWT (Google Web Toolkit)
  • Калитка
  • гобелен

И если я что-то упустил из своего списка, дайте мне знать.

Спасибо!

Ответы [ 8 ]

6 голосов
/ 12 февраля 2009

Мое мнение довольно сильно пристрастно к Wicket, потому что я использовал его некоторое время после того, как слишком часто спотыкался о минах JSP.

Калитка PRO:

  • Истинное разделение макета и кода.
  • Компонент на основе, что означает высокую возможность повторного использования элементов сайта; Например, вы можете создать предварительно подтвержденную форму с автоматической маркировкой, стилями CSS и всем остальным, и просто изменив ее объект DAO в конструкторе компонента, он будет полностью использован в другом проекте.
  • Отличная поддержка таких вещей, как Ajax, портлеты и различные фреймворки в целом прямо из коробки И, что более важно, для работы не нужно ничего другого, кроме slf4j / log4j, все необязательно!

Калитки CON:

  • У разработчиков есть некоторая путаница в общих вещах, и дженерики Wicket сейчас немного беспорядочные, хотя в 1.4 * 1020 они были очищены очень много *
  • Некоторые компоненты (например, Form.onSubmit()) требуют расширенного подкласса или переопределения анонимного метода для простого внедрения поведения. Отчасти это происходит из-за мощного основанного на событиях дизайна Wicket, но, к сожалению, это также означает, что с Wicket легко создать беспорядок в коде.

Случайные CON: (то есть я не использовал, но это мои мнения и / или то, что я слышал)

  • GWT основан на JavaScript, что звучит глупо для меня. Главная проблема заключается в том, что он слишком напоминает мне JSP: s и его автоматически сгенерированные классы, которые ужасны.
  • Гобелен не разделяет разметку и код должным образом, что может быть легко проверено между ними, что вызовет проблемы в будущем.
5 голосов
/ 11 февраля 2009

Я использовал GWT для пары небольших проектов. Вот некоторые вещи, которые мне нравятся:

  1. По умолчанию это ajax, поэтому мне не нужно было заставлять делать ajax, он просто пришел вместе с использованием GWT.
  2. Он имеет хорошее разделение клиентского и серверного кода.
  3. Я могу протестировать мой клиентский код, используя junit
  4. Позволяет создавать четкие, быстрые приложения, в основном потому, что это Ajax.

Вещи, которые мне не нравятся:

  1. Некоторые вещи работают не так, как ожидалось. Например, я видел случаи, когда события щелчка не срабатывали, как ожидалось, поэтому мне пришлось обойтись.
  2. Автоматическое развертывание на tomcat, работающем в Eclipse, иногда просто перестает работать, и я никогда не мог понять, почему.
3 голосов
/ 11 февраля 2009

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

2 голосов
/ 12 февраля 2009

Короче говоря:

= JSF =

ПЛЮСЫ:

  • компонентная архитектура;
  • много библиотек и инструментов;
  • несколько хорошая поддержка IDE

МИНУСЫ:

  • большой вес, как в CPU / памяти и кривая обучения;
  • когда что-то работает не так, как ожидалось, трудно отладить

= WICKET =

ПЛЮСЫ:

  • легкий;
  • разумная система шаблонов;
  • хорошие учебники;

МИНУСЫ:

  • справочная документация не так хорошо организована и глубока, как учебные пособия;
  • Команда разработчиков столкнулась с серьезными трудностями, особенно когда становился и инкубировал проект. Это привело к путанице в важных аспектах структуры, в то время мне пришлось переключиться на другую структуру из-за этого ...
1 голос
/ 23 февраля 2009

Мой выбор будет Калитка . Использовал его и дает отличное повторное использование. Это один из самых ярких форумов / списков рассылки. Как вопрос, и он будет дан ответ в течение нескольких минут. Имеет отличную поддержку AJAX. Одним из обычных минусов, приписываемых Wicket, является крутая кривая обучения. Ну, это были одни из минусов старости, которые больше не имеют значения.

JSF: Лучше держись от этого подальше. Другая команда, которая разработала проект на JSF, теперь думает перейти на Wicket после нашего успеха с ним.

@ Megadix: Как вы сказали, вначале документация была плохой, но не более. Существует отличная книга под названием Wicket in Action, написанная разработчиками Wicket. Пример кода, представленный на сайте, также является хорошим местом для начала и изучения

1 голос
/ 18 февраля 2009

А как же Полосы ?

0 голосов
/ 15 апреля 2009

См. Мое сравнение Wicket и Tapestry 5: Разница между Apache Tapestry и Apache Wicket .

0 голосов
/ 12 февраля 2009

Интересно, есть ли у вас сервисный уровень, отличный от веб-клиента, который веб-контроллеры просто вызывают для выполнения своей работы.

Если вы это сделаете, выбор технологии веб-интерфейса может быть отделен от внутреннего интерфейса. Если он отображается как контрактный веб-сервис, вы можете поделиться им с другими приложениями. Пока ваши клиенты могут отправлять и получать XML, они могут взаимодействовать с вашими услугами. Хотите перейти на Flex? Не беспокойтесь - направьте его на службу и предоставьте ответ XML.

...