Wicket и Play - это два совершенно разных типа фреймворков.
Play - это фреймворк MVC, с которым вы, вероятно, познакомитесь из Django.Как и Django, он предлагает больше, чем просто веб-биты, и предоставляет среду ORM на основе JPA, инструменты для создания строительных лесов и, возможно, многое другое (у меня нет практического опыта работы с ним).У них есть отличный учебник на их сайте, и вы, вероятно, увидите там сходство Django.
Wicket - это компонентно-ориентированная среда (например, JSF и Tapestry), которая в основном ориентирована на объектно-ориентированное проектирование.Это также MVC, как таковой, но страницы обычно создаются путем составления автономных и повторно используемых компонентов (View и Controller, подключаемые модели).Эти компоненты могут быть расширены стандартным наследованием и составлением, а разметка очень четко отделена от кода и легко модифицируется.
Wicket может управлять обратными вызовами событий и автоматически определять их состояние, так что у вас не будет , чтобы вообще думать о URL, независимо от сложности вашей страницы.Быстрый пример для нажимаемой кнопки, которая исчезает при нажатии (очень полезно):
// In a page constructor
add(new Link("link") {
public void onClick() {
setVisible(false);
}
});
Я хочу подчеркнуть, что вам не нужно использовать состояние на стороне сервера, и что это вполне возможноиспользовать Wicket как «нормальную» среду MVC, если хотите (и да, легко получить красивые URL).
Проект Wicket фокусируется только на базовой веб-инфраструктуре, и в нем нет дополнительных «тонкостей», таких как специальная поддержка ORM или строительные леса.Я лично согласен с философией проекта Wicket здесь, но для новых разработчиков, работающих на платформе, выполнение «простых» вещей, таких как сортируемая таблица с возможностью просмотра страниц, может быть немного сложным, так как готовых компонентов немного.Кривая обучения и продуктивности для Wicket может быть немного крутой, но положительным моментом является то, что после того, как вы сделали компоненты (и «поведение» - более длинная история), которые соответствуют вашим потребностям, их можно будет многократно использовать.
Хотя я лично люблю Wicket, у меня есть предчувствие, что вам, вероятно, будет лучше с Play.Ваш вопрос указывает на то, что вам нужен «Django» с доступом к библиотекам Java, и в этом случае я думаю, что Play (или какой-то другой Java MVC) является безопасным выбором.С другой стороны, возможно, вы использовали Django, потому что вы не знали, насколько невероятно мощен Wicket.;) Если вы дадите больше информации о вашем проекте, мы сможем дать более квалифицированный ответ.
В качестве побочного узла: поскольку Play не очень распространен (по крайней мере, на данный момент), яТакже рассмотрим Grails , который имеет мощную коммерческую поддержку и еще больше готовых модулей.