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

StackOverflow https://stackoverflow.com/questions/538550

Вопрос

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

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

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

  • Icefaces
  • JSF (без ледовых площадок)
  • GWT (Google Web Toolkit)
  • Калитка
  • Гобелен

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

Спасибо!

Это было полезно?

Решение

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

Калитки плюсы:

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

Калитка минусы:

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

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

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

Другие советы

I've used GWT for a couple small projects. Here are some things I like about it:

  1. It's ajax by default, so I didn't have to make it do ajax, it just came along with using GWT.
  2. It's got good separation of client versus server-side code.
  3. I can unit-test my client code using junit
  4. It lets you built crisp, snappy apps, largely because it's ajax.

Things I don't like:

  1. Some things don't work as expected. For example, I've seen cases where click events didn't fire as expected, so I had to do a workaround.
  2. Auto-deploy to tomcat running in eclipse sometimes just stops working, and I could never figure out why.

The biggest question I'd ask is why are you changing presentation layer? That's a very expensive cost and I can see the benefits of one technology outweighing the others by as much as the cost to change...

In short:

= JSF =

PROS:

  • component architecture;
  • many libraries & tools;
  • somewhat good IDE support

CONS:

  • heavy weight, both in CPU/memory and learning curve;
  • when something doesn't work as expected, it's difficult to debug

= WICKET =

PROS:

  • lightweight;
  • sensible templating system;
  • good tutorials;

CONS:

  • reference documentation is not so well organized and deep as are the tutorials;
  • development team had some serious difficulties, especially when becoming and incubated project. This lead to confusion on important aspects of the framework, at that time I had to switch to another framework because of this...

Как насчет Полосы?

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

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

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

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

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

Смотрите мое сравнение калитки и гобелен 5: Разница между apache белен и калит Apache.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top