Подтвердить что ты не робот

Имеет ли смысл использовать Google Web Toolkit (GWT) как полномасштабную веб-инфраструктуру Java?

Меня интересует возможность того, что GWT может послужить основой для всего моего уровня представления.

Мне было бы интересно узнать, успешно ли кто-либо пробовал это - или безуспешно - и мог убедить меня или убедить меня в попытке этого.

4b9b3361

Ответ 1

Я работал с GWT около года назад. В то время это казалось отличной идеей, с рядом оговорок:

  • У меня возникли проблемы с некоторыми частями API, которые, вероятно, были связаны с тем, что вы кодируете, как будто вы находитесь в java, когда на самом деле вы на самом деле пишете для отдельно скомпилированной среды, которая действует например, java, поэтому вы делаете некоторые неправильные предположения (в данном случае, передавая вложенные значения в переднюю часть). Я думаю, что был другой, переписывающий сценарии ant для использования 32-битного jvm для компиляции gwt.
  • Я потратил немного времени, пытаясь изменить внешний вид - мы никогда не развертывали готовый проект, поэтому я не уверен, сколько работы это заняло бы, чтобы выйти на профессиональный уровень, но казалось (логически), как это 'd быть сопоставимым с настройкой интерфейса swing. может быть немного более громоздким, визуально, чем html.
  • Поскольку ajax настолько скрыт от вас в конечном продукте, у меня были некоторые опасения относительно того, что я могу сделать, если производительность была плохой.

Говоря это, определенно кажется, что стоит поиграть, и мой опыт был долгим, давным-давно в интернет-годы, особенно учитывая, что он, вероятно, намного более зрелый сейчас. Также стоит отметить, что это совсем другой (и освежающий) способ разработки кода GUI из большинства фреймворков MVC, и стоит посмотреть, не по какой-либо другой причине.

Я чувствую, что если вы создаете профессиональный сайт высокой нагрузки с очень требовательными графическими требованиями, GWT, вероятно, не является хорошим выбором, в противном случае это нормально.

Ответ 2

Вы упомянули, что GWT будет обрабатывать презентационный уровень. Вы бы тоже делали бизнес-уровень на Java? Если это так, я хотел бы указать вам на IT Mill Toolkit, который делает именно это: это инструментарий, который использует GWT для рендеринга его графические компоненты, позволяющие полностью выполнять ваши приложения на Java. Я думаю, что термин, который он пытается использовать, - это "управляемый сервером RIA".

Я исхожу из PHP-фона, но мгновенно придумал набор инструментов. Но, наверное, лучше, что я больше ничего не скажу и позволяю вам принимать собственные решения.

Disclamer: Я работаю в IT Mill, хотя это не имеет отношения к моим мнениям.

Ответ 3

GWT относительно новый. Процесс компиляции имеет тенденцию становиться медленным, поскольку ваша база кода растет. Когда мы работали с ним, мы обнаружили много проблем с компоновкой и визуализацией более сложных виджетов, и эмулятор действовал совершенно иначе, чем реальные серверы. Кроме того, у нас были проблемы с i18n для языков справа налево...

В целом, GWT имеет (обычные?) проблемы молодых технологий. Однако, это делает некоторые вещи очень легкими, как Ajaxifying, как вы его назвали.

Ответ 4

Мы сделали это для очень крупного проекта, и, пока вы знаете его ограничения, сильные и слабые стороны, он отлично работает. Как ни странно, презентация была наименьшей из наших проблем, так как мы просто обрисовали ее так же, как и любую другую HTML-страницу, используя CSS. Проект пошел вживую и безуспешно прошел, поэтому у меня нет жалоб.

Ловушки, которые я нашел с ним, можно найти здесь:

Самые большие ошибки GWT?

Ответ 5

Мы разработали приложение большого портала HR с полным уровнем представления, выполненным в GWT. Бэкэнд Spring. Все это работает очень хорошо, и пользовательский интерфейс был очень хорошо принят пользователями. Очень важно, что нам легко добавлять новые функции и поддерживать приложение. Я думаю, было бы намного сложнее сделать что-то сравнимое и поддерживаемое с помощью библиотек Javascript.

Вам нужна какая-то клиентская среда или вы в конце концов напишите ее (как и мы!): наше приложение построено на Портлеты GWT (свободный и открытый исходный код).

Мы используем HTML-фрагменты для скинирования приложения для разных развертываний, а макет каждой "страницы" хранится в XML файле.

Ответ 7

GWT в нем - это библиотека расширения пользовательского интерфейса, а не фреймворк. Если вы используете его с Google App Engine, у вас есть базовая структура. (Это совсем другая история, и пока я смотрел на нее, я решил не включать это в нашу архитектуру).

Это отличная библиотека, мы с ней сделали несколько впечатляющих вещей. Однако, поскольку это библиотека, она настолько же хороша, насколько позволяет ваша архитектура.

В отношении ANT не возникает проблем с 64-битным компилятором.

< java failonerror = "true" fork = "true" classname = "com.google.gwt.dev.Compiler" dir = "$ {dir.GWTCompile}" > < - dir.GWTCompile - это каталог, содержащий GWT →   < &gt классы; Путь к классам   & Л; /&gt классов;   < jvmarg value = "- ${gwt.maxMem}" / >   < arg value = "@{gwt.baseModule}" / >   < arg value = "DEBUG" / >   < arg value = "- strict" / > </Java>

Что касается сгенерированного кода, все это в вашей войне, если вы хотите просмотреть его. (Это также открытый исходный код, поэтому вы можете посмотреть его там.)

Что GWT делает во время процесса компиляции: Он создает несколько копий JS-библиотек для разных наборов браузеров (одна из причин, по которым может потребоваться минут для компиляции), вы можете добавить/удалить их по мере необходимости. Это уменьшает пакет JS, который необходимо загрузить, и увеличивает скорость, поскольку он не должен иметь эти неприятные, если (EI) это еще, если (FF), что. Однако, когда вы выполняете локальную отладку (по крайней мере, в eclipse), вам не нужно ждать, что позволяет оставить это для сервера сборки (или когда вам нужно вручную создавать и развертывать (неандертальцы)).

Недостаток GWT. Поскольку это клиентская сторона javascript (почти чисто), вы не можете использовать ее для вещей, которые ее не поддерживают, или поддерживают одну из версий. Поэтому для таких вещей, как iPads и iPhones, вы можете столкнуться с некоторыми проблемами, если не используете дополнительные библиотеки, предназначенные для устранения этих пробелов (например, mgwt).