Google Web Toolkit - GWT, введение.

По GWT у меня накопилось некоторое количество опыта, которым можно было бы, поделится. Тем более в Интернете довольно мало русскоязычных материалов по GWT. Если у Вас нет проблем с английским – то советую, сразу перейти к официальной документации Google. Без труда можно найти и литературу на английском посвященную GWT.

Я же планирую написать несколько статей по некоторым особенностях и преимуществах GWT:
  • Построение пользовательского интерфейса на основе GWT widget.
  • Вызов удаленных процедур, взаимодействие с сервером - GWT RPC.
  • Интеграция с уже существующими продуктами и технологиями.

Итак, GWT – это AJAX фреймворк, созданный Google. Распространяется под лицензией Apache 2.0 open source license. При желании можно получить исходники и собрать или модифицировать самому.

В Google работает большое количество высококвалифицированных специалистов, чей опыт и знания были использованы при создании GWT. Благодаря этому GWT многое делает за Вас. Причём таких же результатов, без использования GWT, можно добиться, только обладая довольно высоким уровнем в области WEB- программирования.

Для начала, надо понять самую важную особенность GWT – это его компилятор. Всё программирование осуществляется на Java. При этом весь клиентский код, выполняющийся в среде WEB-браузера, преобразуется компилятором из Java в JavaScript. GWT сам заботиться о совместимости браузеров. Благодаря этому можно вообще не думать о JavaScript и CSS. Конечно, при необходимости, есть возможность дополнительно использовать свои CSS стили и свой JavaScript код.
Серверный же код, так и остаётся на Java, и предназначен для выполнения в среде сервлёт-контейнера, например Tomcat. Если Вас не устраивает Java на стороне сервера, то можно ограничиться использованием GWT только на стороне клиента. Клиентский JavaScript код поддерживает стандартные методы реализации AJAX, поэтому его легко интегрировать с любой серверной технологией, например тем же PHP.
Естественно, компилятор не может всё транслировать из Java в JavaScript. Java функционально богаче JavaScript, поэтому для некоторых, вроде элементарных вещей для Java, может не оказаться аналогов на JavaScript.

Вот достоинства GWT, по мнению самих Google:

JavaScript высокой производительности. GWT создает приложения AJAX, которые:

Загружаются быстрее, чем приложения JavaScript, написанные вручную
Используют меньший, более компактный, кэшируемый код
Автоматически поддерживают IE, Firefox, Mozilla, Safari и Opera
Правильно используют кнопку "назад" в браузерах

Более удобные инструменты разработчика. Работая в Java, можно использовать:

Свои любимые IDE, например, Eclipse, IntelliJ и NetBeans
Отладку с полным набором функций, с переменными точками контроля и остановки
Модульные тесты (на основе JUnit) как в программе, так и в браузере

API Google и повторно применяемые компоненты пользовательского интерфейса. В GWT включены полезные библиотеки:

Встроенные компоненты пользовательского интерфейса служат кросс-браузерными строительными блоками вашего приложения
RCP помогает с клиент-серверными взаимодействиями
JavaScript Native Interface (JSNI) упрощает интеграцию кода GWT в существующий код JavaScript


В следующей статье мы немного попрактикуемся, напишем HelloWord на GWT.
Для Java я пользуюсь IDE средой NetBeans. Выбор среды не критичен, но если Вам удобнее всё делать "шаг-за-шагом", то советую поставить именно NetBeans, тогда у нас всё будет одинаково.

Качаем NetBeans отсюда - http://www.netbeans.org/downloads/index.html
Выбираем версию в составе которой есть Apache Tomcat.
При установке NetBeans тоже устанавливаем Tomcat:




















GWT качаем отсюда -http://code.google.com/intl/ru-RU/webtoolkit/

8 комментариев:

  1. А когда продолжение будет?

    ОтветитьУдалить
  2. Ещё вопросик - можно в GWT "на лету" менять пути к css и картинкам?

    ОтветитьУдалить
  3. Продолжение обещаю за выходные выложить, может и раньше, если время будет. А с картинками и стилями на лету все просто. В AJAX так и должно быть. Во время выполнения можно изменить любое css свойство элемента/виджета. Либо изменить id, для которых заранее прописанны свойства в таблице стилей.

    ОтветитьУдалить
  4. Что-то нет продолжения
    Уже почти год прошел

    ОтветитьУдалить
  5. Прошло 4 года. Продолжения все нет. )

    ОтветитьУдалить
  6. прошло 5 лет...
    полёт нормальный :)

    ОтветитьУдалить
  7. Вот продолжение - http://rootger.blogspot.ru/2014/11/gwt-gae.html

    ОтветитьУдалить
  8. Вау, когда писал коммент даже и не надеялся на продолжение...
    Спасибо!

    ОтветитьУдалить