2

Или есть лучшие варианты (рамки) для такого применения, SPA?Является ли Wicket подходящей структурой Java java для приложений с одной страницей?

Я заинтересован в использовании только фреймворков Scala или Java для разработки бэкэнд.

И в основном важные моменты для выбора бэкенд веб-фреймворк для меня являются:

  • хорошая документация, ресурсы и много примеров
  • зрелость и большое принятие сообществом и со значительными случаев реального применения.
  • легкая и короткая кривая изучения.
  • простая и обширная архитектура, которая упрощает использование или добавляет такие функции, как аутентификация, авторизация и другие, общие для веб-приложения.
+4

Вы считаете Play Framework? Он не имеет статуса (в то время как Wicket управляет состоянием на сервере), что может быть преимуществом, в зависимости от вашего варианта использования. – Hbf

+1

На этот вопрос нельзя ответить фактами, любой ответ, который вы можете получить, будет очень субъективным. Я предлагаю вам просто проверить свои баллы с некоторыми фреймворками, [эта страница в Википедии] (http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java_2) может быть хорошей отправной точкой. – EECOLOR

+2

Да, калитка может использоваться для одностраничных приложений. Однако я бы не сказал, что кривая обучения является постепенной, и архитектура проста. Считаете ли вы, что вы пишете весь свой код пользовательского интерфейса, скажем, javascript с простым априотом на сервере? – buritos

ответ

4

Да, вы можете построить SPA с Wicket, и его архитектура компонентов фактически делает его очень простым.

В принципе, какая бы страница была в обычном приложении, вы превращаетесь в панель и делаете панели с одной страницей с помощью Ajax вместо навигации между страницами. Вы можете использовать несколько панелей для нескольких разделов страницы и т. Д. Все это очень просто и естественно с фреймворком. Архитектура события, добавленная с 5.x, упрощает использование межсегментной связи.

Единственное, что вы теряете, тем не менее, это возможность закладки страниц.

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

Основы на стороне клиента (на основе javascript) (например, GWT) обычно реализуют это с помощью динамических якорей (строки в URL после #) для кодирования текущего состояния, чтобы приложение могло его восстановить, если это необходимо, но являясь средой, ориентированной на сервер, Wicket не может этого сделать (по крайней мере, не без особого кода). Возможно, выполнимо, но потребует некоторой мысли и работы.

Много раз это не является обязательной функцией (или может быть даже нежелательным поведением). Если это так, Wicket действительно может вам помочь.

О применении основанных на действии фреймворков (Struts, Spring MVC, Play и т. Д.), Они более подходят, если вам нужна архитектура с большим количеством клиентов. Но вы неизбежно кодируете большую часть своего приложения в Javascript или используете какой-либо Java-to-javascript-компилятор (GWT) и используете фреймворк, чтобы делать запросы, я имею в виду, реализовать службы (XML, JSON или некоторые вариант).