Плюсы и минусы различных технологий веб-презентаций Java Web Presentation
В настоящее время я работаю над веб-приложением, которое сильно использует JSF и IceFaces. У нас были некоторые дискуссии о переходе на другой уровень презентации, и я подумал, что я буду обсуждать это в формате SO и посмотреть, что думают эксперты.
Мне любопытно, может ли кто-нибудь повлиять на плюсы и минусы различных технологий уровня презентации Java. Если вы только работали с одним, скажите, почему вы его любите или ненавидите. Если вы работали с несколькими, дайте свои впечатления от того, как они складываются друг против друга.
Наши рассматриваемые технологии:
- ICEfaces
- JSF (без IceFaces)
- GWT (Google Web Toolkit)
- Калитка
- Гобелен
И если мне не хватает чего-либо из моего списка, дайте мне знать.
Спасибо!
Ответы
Ответ 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.
Ответ 8
Смотрите мое сравнение Wicket and Tapestry 5: Разница между Apache Tapestry и Apache Wicket.