2010-01-30 3 views

ответ

41

Click активно развивается и недавно получил высшее образование в качестве проекта верхнего уровня Apache. В настоящее время он переезжает в свой новый домен по адресу: http://click.apache.org. После завершения миграции будет выпущена следующая версия 2.1.0.

Перед тем, как сравнивать Click и Wicket, обратите внимание, что я являюсь коммиттером в Apache Click, но несколько лет назад оценил Wicket, поэтому имею неплохую идею о том, как это работает.

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

Wicket предназначен для создания сложных приложений (думаю, на рабочем столе), где все GUI-состояние хранится и управляется для вас. Щелчок предназначен для более традиционных веб-приложений, где для отображения страницы требуется небольшое состояние. Если вам нужно сохранить состояние, вы должны сами управлять им, добавив/удалив его из сеанса. Стоит отметить, что Wicket обеспечивает поддержку страниц без гражданства, а Click поддерживает страницы с сохранением состояния, однако это не является нормой для этих фреймворков.

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

вид касается

Боб

+4

+1: Хороший сбалансированный ответ. У них обоих есть сильные стороны, и вы прекрасно это восприняли. –

+1

Калитка не обязательно с точки зрения состояния. По умолчанию ваши приложения калитки являются апатридами, и калитка переключается только в состояние , когда это необходимо. Пока вы тщательно используете на своих веб-страницах только компоненты без гражданства (например, org.apache.wicket.markup.html.form.StatelessForm), ваше приложение останется без гражданства. Вы также можете добавить приложение StatelessChecker в свое приложение, чтобы обеспечить соблюдение statelessnes. Контроллер выдает исключение из компонента, относящегося к оскорбительному состоянию, см. Мой другой пост, как настроить его, если вам нужно. –

2

С калиткой используется чистый HTML и нет языка шаблонов как скорость или JSP, как щелчок делает. Это не только удобно для самого программиста, который должен только изучить html и java, но также и для инструментария (отладки и т. Д.).

Он обеспечивает лучшее разделение пользовательского интерфейса и логики. В калитки также не требуется xml, который IMHO отличается от клика.

Еще несколько отличий: трафик списка рассылки калитки выше; есть больше публикаций (например, книг) по калитки, а затем по щелчку; есть больше разработчиков кодирования калитки (смотрите this и this)

+2

Да, и калитка построена с ~ 850 000 строк кода, в то время как Click содержит только ~ 50 000 строк кодов. Это тоже должно сказать о сложности. Относительно этой информации Click MUCH MUCH более прост. – Palesz

2

Wicket предлагает большую гибкость в отношении того, как вы составляете свои страницы. Вы можете создать одну страницу, состоящую из компонентов для всего приложения, или создать несколько страниц по своему усмотрению. Щелчок основан на странице. Wicket поддерживает ajax из коробки. Большинство компонентов ajax в калитки возвращаются к нормальному обновлению страницы, если браузер не поддерживает ajax. Wicket имеет десятки компонентов из коробки и десятки других из связанных проектов. Одна замечательная функция, которую я нахожу в калитке, - это многословие. Это означает, что все, что делает мое приложение, - это то, что я создал. Я пишу всю презентацию с html и css, и ничего не генерируется. Отсутствие магии - большой плюс для меня по опыту. Последнее и наименее, многие крупные корпорации используют калитки. Мобильный и мобильный телефон Walmat сделаны с калитки.

+0

«Это означает, что все, что делает мое приложение, - это то, что я создал». Нет, это означает все, что вы делаете в html, который вы должны делать на странице калитки. Нет ничего более неприятного, чем проблема с поиском элемента html, связанного с данным компонентом или наоборот. сохранить код и разметку в синхронизации - это кошмары для обслуживания. – Gilberto

1

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

Я только начал смотреть на щелчок. Я люблю свою безгражданность. веб-запрос/ответ, который должен быть апатридом (по крайней мере, насколько это возможно).

Мне также нравится, как приятно щелкает интеграция с apache cayanne.

+5

Отстойный характер уже не является недостатком, если вам нужно состояние. –

+3

Я не думаю, что это всегда так. хороший разработчик на небольшом webapp, вероятно, не будет иметь много проблем, пытаясь поддерживать сложное состояние в небольшом webapp. Если бы у меня был большой проект (10+ разработчиков) для сборки, я бы определенно стремился к решению без гражданства. Это намного проще в создании, тестировании, отладке и обслуживании. – clarson

+0

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