Подтвердить что ты не робот

Плюсы и минусы различных технологий веб-презентаций Java Web Presentation

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

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

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

Wicket PROs:

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

Wicket CONs:

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

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

  • GWT - это JavaScript, который звучит глупо для меня. Основная проблема заключается в том, что он слишком сильно напоминает мне JSP: s и его автогенерируемые классы, которые ужасны.
  • Гобелен не разделяет разметку и код надлежащим образом таким образом, который может быть легко проверен между двумя, что вызовет проблемы в будущем.

Ответ 2

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

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

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

  • Некоторые вещи работают не так, как ожидалось. Например, я видел случаи, когда события щелчка не срабатывали, как ожидалось, поэтому мне пришлось сделать обходной путь.
  • Автоматическое развертывание в tomcat, работающем в eclipse, иногда просто перестает работать, и я никогда не мог понять, почему.

Ответ 3

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

Ответ 4

Короче:

= JSF =

ПЛЮСЫ:

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

МИНУСЫ:

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

= WICKET =

ПЛЮСЫ:

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

МИНУСЫ:

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

Ответ 5

Как насчет Stripes?

Ответ 6

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

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

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

Ответ 7

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

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