Google Web Toolkit

Поделись знанием:
Перейти к: навигация, поиск
Google Web Toolkit
Тип

Ajax framework

Разработчик

Google

Написана на

Java

Операционная система

Windows NT, Mac OS X, Linux

Аппаратная платформа

Кроссплатформенное ПО

Последняя версия

2.7.0[1] (20 ноября 2014)

Лицензия

Apache 2.0 License

Сайт

[www.gwtproject.org/ project.org]

К:Википедия:Статьи без изображений (тип: не указан)

Google Web Toolkit (GWT, ˈɡwɪt) — свободный Java-фреймворк, который позволяет веб-разработчикам создавать Ajax-приложения. Его особенность - это компилятор Java -> JavaScript, позволяющий почти всю разработку клиента и сервера реализовать на основе Java и лишь на последнем этапе создать соответствующие JavaScript, HTML и CSS. Выпускается под лицензией Apache версии 2.0. GWT делает акцент на повторное использование и кросс‐браузерную совместимость.





История

Версия 1.0 RC 1 (build 1.0.20) выпущена 16 мая 2006 года. Компания Google анонсировала GWT на конференции JavaOne в 2006 году.

История версий (более подробно см. англоязычную статью):

Разработка с применением GWT

Используя GWT, разработчики могут быстро писать и отлаживать AJAX приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java приложения соответствующему браузеру JavaScript, HTML и CSS.

Кроме того, GWT оснащен XML парсером, поддержкой интернационализации, интерфейсом для удаленного вызова процедур, интеграцией JUnit и небольшим пакетом виджетов для разработки элементов графического интерфейса пользователя (GUI). Они могут быть созданы аналогично тому, как это делается с помощью пакета Swing.

Отладка GWT-приложения разделена на две части: отладка серверной части приложения осуществляется как отладка обычного Java web-приложения, для отладки клиентской части понадобится gwt dev-plugin для браузера.

Утилита командной строки webAppCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта Eclipse.

Существует подключаемый модуль [code.google.com/eclipse/ Google Plugin] для IDE Eclipse (начиная с версии 3.3), позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе Google App Engine.

Особенности

  • Избегается повторная реализация одних и тех же графических интерфейсов для локальных и для веб-приложений с помощью различных технологий, например - RCP для первых и JSF - для вторых.
  • Обычная схема - "stateless клиент / stateful сервер" может быть заменена схемой "stateful клиент / stateless сервер". Это позволяет больше реакций пользователя обрабатывать непосредственно в клиенте.
  • Простой механизм удалённого вызова процедур. В сочетании с предыдущим качеством это позволяет серверу передавать в ответ данные, а не HTML. Сервер при этом может быть любой - не обязательно тот, который передал первую картинку.
  • Для передачи сложных данных может использоваться как стандартный RPC - передаче подлежат сериализируемые Java-объекты, так и тексты на XML или JSON.
  • Динамические и многоразовые компоненты пользовательского интерфейса (виджеты): Программисты могут использовать заранее разработанные классы для реализации трудоемких элементов динамического поведения, таких, как drag-and-drop, или сложных визуальных структур.
  • Управление историей браузера
  • Поддержка полнофункциональной Java отладки [2]
  • GWT устраняет некоторые кросс-браузерные проблемы разработки. [2]
  • JUnit-интеграция
  • Поддержка интернационализации и локализации
  • Поддержка HTML Canvas (с учётом изменений API)
  • Разработчики могут вставлять готовые JavaScript-фрагменты в исходный Java-текст, применяя JavaScript Native Interface (JSNI).
  • Поддержка использования Google API Gears в приложениях GWT
  • Программное обеспечение с открытым исходным кодом
  • Разработчики могут проектировать и разрабатывать приложения в чистом объектно-ориентированном стиле, так как они используют Java (вместо JavaScript).[3] Обычные JavaScript-ошибки, такие, как опечатки и несоответствие типов, обрабатываются во время компиляции.
  • JavaScript, генерируемый GWT-компилятором, может быть разделен на фрагменты. Это не только дает возможность лучше понимать его, но и экономит время загрузки приложения - первый фрагмент может начать работать, не дожидаясь пока весь JavaScript текст будет загружен [3]
  • Ряд библиотек доступны для GWT, от Google или третьих лиц. Это расширяет функциональные возможности GWT. [3]

Доступные виджеты

Начиная с версии 2.4 (сентябрь 2011), GWT предлагает несколько виджетов

Виджеты и панели
Виджеты Панели
Button PopupPanel
PushButton StackPanel
RadioButton StackLayoutPanel
CheckBox HorizontalPanel
DatePicker VerticalPanel
ToggleButton FlowPanel
TextBox VerticalSplitPanel
PasswordTextBox HorizontalSplitPanel
TextArea SplitLayoutPanel
Hyperlink DockPanel
ListBox DockLayoutPanel
CellList TabPanel
MenuBar TabLayoutPanel
Tree DisclosurePanel
CellTree
SuggestBox
RichTextArea
FlexTable
Grid
CellTable
CellBrowser
TabBar
DialogBox

Многие обычные виджеты, отсутствующие в GWT, реализованы в сторонних библиотеках, таких как [extjs.com/products/gxt/ Ext GWT], [gwt.components.googlepages.com/ GWT Component Library], [code.google.com/p/gwt-ext/ GWT-Ext], [gwt-widget.sourceforge.net/ GWT Widget Library], [gwtiger.org/ GWTiger], [code.google.com/p/rocket-gwt/ Rocket GWT], [code.google.com/p/tatami/ Dojo], [code.google.com/p/smartgwt/ SmartGWT] и т.д.

Компоненты

Основные компоненты GWT:

Компилятор Java->JavaScript (GWT Java-to-JavaScript Compiler)
Переводит Java код в JavaScript.
Отладчик (браузер, GWT Development Mode)
Позволяет запускать GWT приложения в режиме отладки (ранее назывался "hosted"; приложения запускаются как Java код в JVM без компиляции в JavaScript).
Библиотека эмуляции JRE классов (JRE emulation library)
Реализация часто используемых стандартных Java классов на JavaScript.
Библиотека графических элементов (GWT Web UI class library)
Множество пользовательских интерфейсов и классов для создания виджетов.
Веб-сервер
Tomcat или Jetty.

Мобильные приложения

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

Некоторые из наиболее распространенных мобильных библиотек GWT

  • [code.google.com/p/gwtmobile/ GwtMobile]
  • [code.google.com/p/gwt-mobile-webkit/ GWT-мобильный-WebKit]
  • [github.com/sksamuel/jqm4gwt jqm4gwt]
  • [m-gwt.com/ м-GWT]

Напишите отзыв о статье "Google Web Toolkit"

Примечания

  1. [www.gwtproject.org/versions.html GWT Project — Versions]
  2. 1 2 Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0-596-10187-9.
  3. 1 2 3 Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0-596-51022-0.

См. также

Ссылки

  • [www.gwtproject.org/ Домашняя страница GWT]
  • [googlewebtoolkit.blogspot.com/ Официальный блог GWT]
  • [groups.google.com/group/Google-Web-Toolkit Официальные обсуждения GWT]
  • [code.google.com/p/gwt-ext/ Открытая библиотека визуальных эффектов для разработки GWT приложений (GWT-Ext)]
  • [cofe-tv.blogspot.ru/2010/11/google-web-toolkit.html Русский учебник GWT]
  • [www.quizful.net/post/gwt-tutorial-introduction Введение в GWT]

Отрывок, характеризующий Google Web Toolkit

Во вторых, невозможно было потому, что, для того чтобы парализировать ту силу инерции, с которой двигалось назад войско Наполеона, надо было без сравнения большие войска, чем те, которые имели русские.
В третьих, невозможно это было потому, что военное слово отрезать не имеет никакого смысла. Отрезать можно кусок хлеба, но не армию. Отрезать армию – перегородить ей дорогу – никак нельзя, ибо места кругом всегда много, где можно обойти, и есть ночь, во время которой ничего не видно, в чем могли бы убедиться военные ученые хоть из примеров Красного и Березины. Взять же в плен никак нельзя без того, чтобы тот, кого берут в плен, на это не согласился, как нельзя поймать ласточку, хотя и можно взять ее, когда она сядет на руку. Взять в плен можно того, кто сдается, как немцы, по правилам стратегии и тактики. Но французские войска совершенно справедливо не находили этого удобным, так как одинаковая голодная и холодная смерть ожидала их на бегстве и в плену.
В четвертых же, и главное, это было невозможно потому, что никогда, с тех пор как существует мир, не было войны при тех страшных условиях, при которых она происходила в 1812 году, и русские войска в преследовании французов напрягли все свои силы и не могли сделать большего, не уничтожившись сами.
В движении русской армии от Тарутина до Красного выбыло пятьдесят тысяч больными и отсталыми, то есть число, равное населению большого губернского города. Половина людей выбыла из армии без сражений.
И об этом то периоде кампании, когда войска без сапог и шуб, с неполным провиантом, без водки, по месяцам ночуют в снегу и при пятнадцати градусах мороза; когда дня только семь и восемь часов, а остальное ночь, во время которой не может быть влияния дисциплины; когда, не так как в сраженье, на несколько часов только люди вводятся в область смерти, где уже нет дисциплины, а когда люди по месяцам живут, всякую минуту борясь с смертью от голода и холода; когда в месяц погибает половина армии, – об этом то периоде кампании нам рассказывают историки, как Милорадович должен был сделать фланговый марш туда то, а Тормасов туда то и как Чичагов должен был передвинуться туда то (передвинуться выше колена в снегу), и как тот опрокинул и отрезал, и т. д., и т. д.
Русские, умиравшие наполовину, сделали все, что можно сделать и должно было сделать для достижения достойной народа цели, и не виноваты в том, что другие русские люди, сидевшие в теплых комнатах, предполагали сделать то, что было невозможно.
Все это странное, непонятное теперь противоречие факта с описанием истории происходит только оттого, что историки, писавшие об этом событии, писали историю прекрасных чувств и слов разных генералов, а не историю событий.
Для них кажутся очень занимательны слова Милорадовича, награды, которые получил тот и этот генерал, и их предположения; а вопрос о тех пятидесяти тысячах, которые остались по госпиталям и могилам, даже не интересует их, потому что не подлежит их изучению.
А между тем стоит только отвернуться от изучения рапортов и генеральных планов, а вникнуть в движение тех сотен тысяч людей, принимавших прямое, непосредственное участие в событии, и все, казавшиеся прежде неразрешимыми, вопросы вдруг с необыкновенной легкостью и простотой получают несомненное разрешение.
Цель отрезывания Наполеона с армией никогда не существовала, кроме как в воображении десятка людей. Она не могла существовать, потому что она была бессмысленна, и достижение ее было невозможно.
Цель народа была одна: очистить свою землю от нашествия. Цель эта достигалась, во первых, сама собою, так как французы бежали, и потому следовало только не останавливать это движение. Во вторых, цель эта достигалась действиями народной войны, уничтожавшей французов, и, в третьих, тем, что большая русская армия шла следом за французами, готовая употребить силу в случае остановки движения французов.
Русская армия должна была действовать, как кнут на бегущее животное. И опытный погонщик знал, что самое выгодное держать кнут поднятым, угрожая им, а не по голове стегать бегущее животное.



Когда человек видит умирающее животное, ужас охватывает его: то, что есть он сам, – сущность его, в его глазах очевидно уничтожается – перестает быть. Но когда умирающее есть человек, и человек любимый – ощущаемый, тогда, кроме ужаса перед уничтожением жизни, чувствуется разрыв и духовная рана, которая, так же как и рана физическая, иногда убивает, иногда залечивается, но всегда болит и боится внешнего раздражающего прикосновения.
После смерти князя Андрея Наташа и княжна Марья одинаково чувствовали это. Они, нравственно согнувшись и зажмурившись от грозного, нависшего над ними облака смерти, не смели взглянуть в лицо жизни. Они осторожно берегли свои открытые раны от оскорбительных, болезненных прикосновений. Все: быстро проехавший экипаж по улице, напоминание об обеде, вопрос девушки о платье, которое надо приготовить; еще хуже, слово неискреннего, слабого участия болезненно раздражало рану, казалось оскорблением и нарушало ту необходимую тишину, в которой они обе старались прислушиваться к незамолкшему еще в их воображении страшному, строгому хору, и мешало вглядываться в те таинственные бесконечные дали, которые на мгновение открылись перед ними.
Только вдвоем им было не оскорбительно и не больно. Они мало говорили между собой. Ежели они говорили, то о самых незначительных предметах. И та и другая одинаково избегали упоминания о чем нибудь, имеющем отношение к будущему.
Признавать возможность будущего казалось им оскорблением его памяти. Еще осторожнее они обходили в своих разговорах все то, что могло иметь отношение к умершему. Им казалось, что то, что они пережили и перечувствовали, не могло быть выражено словами. Им казалось, что всякое упоминание словами о подробностях его жизни нарушало величие и святыню совершившегося в их глазах таинства.
Беспрестанные воздержания речи, постоянное старательное обхождение всего того, что могло навести на слово о нем: эти остановки с разных сторон на границе того, чего нельзя было говорить, еще чище и яснее выставляли перед их воображением то, что они чувствовали.

Но чистая, полная печаль так же невозможна, как чистая и полная радость. Княжна Марья, по своему положению одной независимой хозяйки своей судьбы, опекунши и воспитательницы племянника, первая была вызвана жизнью из того мира печали, в котором она жила первые две недели. Она получила письма от родных, на которые надо было отвечать; комната, в которую поместили Николеньку, была сыра, и он стал кашлять. Алпатыч приехал в Ярославль с отчетами о делах и с предложениями и советами переехать в Москву в Вздвиженский дом, который остался цел и требовал только небольших починок. Жизнь не останавливалась, и надо было жить. Как ни тяжело было княжне Марье выйти из того мира уединенного созерцания, в котором она жила до сих пор, как ни жалко и как будто совестно было покинуть Наташу одну, – заботы жизни требовали ее участия, и она невольно отдалась им. Она поверяла счеты с Алпатычем, советовалась с Десалем о племяннике и делала распоряжения и приготовления для своего переезда в Москву.