Образовательный портал «Кафедра онлайн» НИЯУ «МИФИ», Обнинск"

Фреймворк GWT

И.И.  Стрелицын,  магистрант ИАТЭ НИЯУ «МИФИ», Обнинск

GWT (Google Web Toolkit) — свободный кроссбраузерный фреймворк, поддерживаемый компанией Google, который позволяет веб-разработчикам создавать веб-приложения с использованием AJAX на основе Java.

С использованием GWT разработка веб-приложений становится похожей на разработку десктопных приложений. Пользовательский интерфейс строится на базе виджетов, к которым привязываются события. Главной особенностью GWT является транслятор из Java в JavaScript. В основе GWT лежит архитектурный паттерн MVP (Model-View-Presenter), похожий на известный MVC.

Реализация MVP

Весь механизм MVP реализован в GWT с помощью следующих классов:

  • View – виджеты, всю полезную логику делегируют связанным с ними Activity.
  • Activity – выполняет роль Presenter, не содержит кода пользовательского интерфейса. Осуществляет связь View и бизнес-логики
  • ActivityManager – управляет жизненным циклом всех Activity.
  • Place – состояние текущего отображения. На основе текущего URL выбирает, какие именно Activity должны быть запущены с помощью ActivityManager.

Бизнес-логика реализуется с помощью обычных классов Java, которые получают данные из БД.

Разработка пользовательского интерфейса

По умолчанию GWT предоставляет набор стандартных виджетов, повсеместно используемых для построения UI. Вот некоторые из них:

  • Button
  • RadioButton
  • CheckBox
  • TextBox
  • TextArea
  • ListBox
  • Grid
  • DatePicker и т.д.

Есть возможность создавать комплексные виджеты и привязывать к ним события. В GWT предусмотрено два пути построения пользовательского интерфейса:

  1. Добавлять виджеты на страницу с помощью кода Java, как это делают в десктопных приложениях.
  2. Использовать UIBinder — класс, позволяющий использовать разметку XML для размещения виджетов.

Сравнение с традиционным подходом (HTML+PHP+JS)

Преимущества:

  • Встроенная кроссбраузерность
  • Более структурированный объектно-ориентированный подход
  • Java-код проще поддерживать
  • Простота использования для Java-разработчиков

Недостатки:

  • Необходимость установки сервера приложений для Java
  • Дополнительная прослойка в виде транслятора GWT
  • Неудобно для веб-разработчиков, привыкших к традиционному подходу

Щелкните здесь мышкой, чтобы увидеть полный текст публикации.

3 комментариев

Похожие публикации
 
 

3 комментариев

  1. Илья Стрелицын. Фреймворк Google Web Toolkit.

  2. ivan:

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

    1. Большие проекты на нем лучше не писать, т.к. отладка и поддержка клиентской части кода — сущий ад.
    2. При слиянии со Spring’ом(а без него сейчас никуда в Java Web) не обойтись без извращений.
    3. В исходниках клиентской части имеется множество багов. Едиснтвенный вариант справиться с ними — перекрывать «кривые» методы при помощи наследования от сломанных классов(пагинация SimplePager, например).
    4. Хоть клиентская часть и разрабатывается на языке Java, многие полезные классы оказываются недоступными при ее разработке.

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

    В 2006 году, когда этот фреймворк только появился, многие компании, разрабатывающие ПО, спрыгнули со Spring’a на GWT, о чем позднее пожалели и конечно же прекратили использовать, вернувшись к более эффективному Spring’у.

    В целом, GWT полезен для расширения кругозора, но никому давно не нужен.

    Определение фреймворка лучше изменить, т.к. компания Google уже давно передала его поддержку сторонним компаниям.

    • sasha2x:

      Хочу немного оспорить твои суждения:
      1. Поддержка кода зависит от самого проекта и его изначальной структуры, если сделать её неправильной, то и поддерживать будет не очень, с чем вы и столкнулись. Отладка клиентской части всегда были танцами с бубном, так как отлаживать к примеру javascript это еще суровей чем исходный код который написанный под GWT.
      2. Не понимаю в чем там извращение
      3. Баги не в самом GWT(Gwt сам идеален),а в фреймворках под него, найти качественный очень трудно, в основном все фреймворки под него пишутся как интерфейс java-скриптовых библиотек
      4. Тоже пункт не понятен, если ты сравниваешь клиента с сервером, то ты странный человек 🙂

      А и так на минуточку, Spring не в коем случае нельзя сравнивать с GWT ибо первое для сервера, вторая для клиента.

      Google никому ничего не передала, они все также по прежнему поддерживают его, в скором времени включат поддержку java 8. Если ты про то что люди пишут свои фреймворки то это как бы нормально:)

      Я не говорю что он всем хорош, но он не так плох как ты его описываешь и достаточно много проектов под ним пишут.

      Всем Бобра!

 
 

Вы можете оставить комментарий

 





 
 

Выполните простое задание (антиспам). Картинки можно сибирать приблизительно, без точной подгонки фрагментов.


 
 
 

Наверх