ПЕРЕСМОТРЕНО после изучения Гобелена 5.
Цель Wicket - попытка сделать веб-разработку похожей на настольный графический интерфейс . Им удалось сделать это действительно хорошо за счет использования памяти (HTTPSession).
Цель Tapestry 5 - сделать очень оптимизированным (для процессора и памяти) компонентно-ориентированный веб-фреймворк.
Действительно большой ловушкой для меня были ответы "Wicket поддерживает компонент без сохранения состояния!" на аргументы "Калитка жаждет памяти". Хотя Wicket действительно поддерживает компоненты без сохранения состояния, они не являются «центром разработки Wicket». Например, ошибка в StatelessForm не была исправлена в течение очень долгого времени - см. StatelessForm - проблема с параметрами после сбоя проверки .
- ИМХО с использованием Wicket будет немного сложно, пока вы не собираетесь оптимизировать / отрегулировать параметры веб-приложения
- ИМХО Wicket труднее изучать, если вы запрограммировали веб-приложения и хотите думать с точки зрения обработки запросов
- Tapestry 5 автоматически перезагружает классы компонентов , как только вы их измените. Обе платформы перезагружают разметку компонента.
- Силы калитки Разметка / разделение кода , Гобелен 5 просто дает вам эту способность. Вы также можете использовать меньше многословного синтаксиса в Tapestry 5. Как всегда, эта свобода требует большего предостережения.
- Ядро Wicket легче отлаживать: пользовательские компоненты основаны на наследовании, а пользовательские компоненты Tapestry 5 основаны на аннотациях. С другой стороны, это может облегчить переход на будущие версии для Tapestry, а не для Wicket.
К сожалению В руководстве по Tapestry 5 не подчеркивается, что пример кода Tapestry, такой как 't: loop source = "1..10" ...', может быть плохой практикой. Поэтому необходимо приложить определенные усилия для написания соглашений / рекомендаций по использованию Гобеленов, если ваша команда не очень мала.
Мои рекомендации :
- Используйте Wicket, когда структура ваших страниц очень динамична, и вы можете позволить себе тратить 10-200 Кбайт памяти HttpSession на пользователя (это приблизительные цифры).
- Используйте Tapestry 5 в тех случаях, когда вам нужно более эффективно использовать ресурсы