Вопрос

Я полностью новичок в разработке Java, и я хотел бы выбрать хорошую веб-каркас Java, чтобы узнать. Я нашел несколько действительно хороших эхо в отношении Apache Wicket Framework и то PlayFramework.. Отказ Я решил пойти на одного из них; Но мне нужно выбрать ;-)

Итак, что выбрать и почему?

РЕДАКТИРОВАТЬ

Мои требования:

  • У меня был хороший опыт, развивающийся с Джанго, поэтому подобные рамки были бы здоровы,
  • Мне нужна рамка, которая может взаимодействовать с другими основными вкусами Java (библиотеки, инструменты ..Tc), чтобы я мог воспользоваться тому, что Java действительно предлагает.
Это было полезно?

Решение

Калитка и игра - это два очень разных типа рамки.

Play - это Framework MVC, которую вы, вероятно, почувствуете знакомые с приездом из Джанго. Как и Django, он предлагает больше, чем просто веб-биты и предоставляет базе JPA ORM Framework, инструменты лесов и, вероятно, намного больше (у меня нет практического опыта с ним). У них есть отличное учебное пособие на их сайте, и вы, вероятно, увидите там сходство Django.

Wicket - это ориентированная на компонентную структуру (например, JSF и гобелен) и в значительной степени фокусируется на ориентированном объектному дизайну. Это также MVC, как SE, но страницы обычно построены, составив автономные и многоразовые компоненты (вид и контроллер, моделей подключаемых). Эти компоненты могут быть расширены по стандартному наследству и составу и разметку очень чисто разделены от кода и легко модифицированы.

Wicket может автоматически управлять обратными вызовами и состоянием событий, чтобы вы не имеют Чтобы подумать вообще URL, независимо от того, насколько сложна ваша страница. Быстрый пример для кнопки клика для клика, который выходит от того, когда он нажал (очень полезен):

  // In a page constructor
  add(new Link("link") {
        public void onClick() {
          setVisible(false);
        }
    });

Я хочу подчеркнуть, что вам не нужно использовать Server Side State, и что вполне возможно использовать Wicket в качестве «обычной» MVC Framework, если вы хотите (и да, легко получить симпатичные URL).

Проект Wicket сосредотачивается только на основной веб-структуре, и нет дополнительных «никущих», таких как специальная поддержка или леса или леса. Я лично согласен с философией проекта Wicket здесь, но для новых разработчиков, приходящих в рамках, выполнение «простых» таких вещей, как винтажный и пагируемый стол, может быть немного пугающим, поскольку предварительно построенные компоненты немного скудны. Кривая обучения и производительности для калитки может быть немного крутой, но истекает, что, как только вы сделали компоненты (и «поведение» - более длительная история), которые соответствуют вашим потребностям, они чрезвычайно многоразовые.

Хотя я лично люблю калитку, у меня есть догадка, что вы, вероятно, будете лучше с игрой. Ваш вопрос указывает, что вы хотите «Django» с доступом к Java Libs, и в этом случае я думаю, что игра (или некоторые другие Java MVC) - это безопасный выбор. С другой стороны, может быть, вы использовали Django, потому что вы не знали, насколько невероятно мощная калитка. ;) Если вы дадите еще несколько информации о вашем проекте, мы сможем дать более квалифицированный ответ.

Как боковой узел: как игра не очень медленнее (по крайней мере, на данный момент), я бы также рассмотрел Гладкий который имеет сильную коммерческую поддержку и даже более из-за коробку модулей.

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

Играть! Предназначен, чтобы быть комфортно для разработчиков, исходящих из языков сценариев, таких как Python и PhP. Он предоставляет собственную систему сборки и сценарии управления, несколько похожи на рельсы или Django. Существующие инструменты сборки и инфраструктуры (например, репозитории Maven, обычно используемые для управления зависимостями в Java-Land), не будут хорошо интегрироваться с игрой.

Wicket будет более комфортно для разработчиков, поступающих от разработки настольных компьютеров в Java. Он не предоставляет специальную оснастку, поэтому будет проще интегрировать в определенный инструмент сборки, если у вас есть предпочтение (и есть много инструментов сборки, обеспечивающие такие вещи, как автоматическое поиск зависимости в экосистеме Java.)

Таким образом, между двумя вариантами есть совсем некоторая разница :) Если вы можете понять, какой опыт больше всего выиграет, решение должно быть довольно ясно, оттуда.

Если ваша система только для веб-сайта, играй! Рамки очень подходит. But , если ваши модели данных не только для веб, может быть, exported as REST by Spring with CXF И потребляется GWT или другими веб-сервисами, и вы хотите убедиться, что согласованные состояния с веб-уровнем, калитка (с весной / гибернатом) - хороший выбор.

Что-то я не чувствую себя так хорошо в пьесе! это механизм кэширования. Вы должны вручную назвать / вставлять / извлекать / неверновать / очистить кеш. Это сделает всю ошибку архитектуры. В то время как калитка с пружиной / JPA (Hibernate) / ehcache (или другими поставщиками), вы можете определить последовательный слой кэширования / дао для верхнего слоя (веб / покоя ...), который не будет налагать государственные несоответствия.

Еще одним преимуществом с помощью калитки является встроенная поддержка AJAX, поддерживаемая Java. Хотя эти состояния Ajax поддерживаются на стороне сервера (и, возможно, немного вялым), если вы не хотите изучать JavaScript, вы все равно можете построить страницу Ajax «не очень плохо».

С игры! , Если вы не знаете о JS, и не хотите его изучать, не хотят манипулировать громоздкими домоми, вы можете построить только «среднее» сайт. OTOH, если вы умеете с JS / jQuery, вы можете выбрать игру! Отказ

Я использую игру! Много и использовали калитку для немного оценки. Мой опыт, что вы должны написать намного больше, чтобы получить ту же работу с помощью калитки. У вас есть больше «косвествия» с калиткой. Я лично предпочитаю код, который имеет как можно меньше «церемонии», и это легко следовать.

Игра! Архитекторы также добавляют поддержку Scala Play!, которую я думаю, является отличной идеей, поскольку SCALA полностью совместима с кодом Java и библиотеками, но намного более продвинутая тогда Java.

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