Google Web Toolkit - Google Web Toolkit
Эта статья содержит контент, который написан как Реклама.Октябрь 2019) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | |
---|---|
изначальный выпуск | 16 мая 2006 г. |
Стабильный выпуск | 2.9.0 / 2 мая 2020 г. |
Репозиторий | |
Написано в | Ява |
Операционная система | Linux, Windows, OS X, FreeBSD |
Доступно в | Ява |
Тип | Фреймворк Ajax |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | www |
Google Web Toolkit (GWT /ˈɡшɪт/), или же GWT Web Toolkit,[1] является Открытый исходный код набор из инструменты это позволяет веб-разработчики создавать и поддерживать JavaScript внешний интерфейс приложения в Ява. За исключением нескольких собственных библиотек, все является исходным кодом Java, который может быть построен на любой поддерживаемой платформе с включенным GWT. Муравей файлы сборки. Он лицензирован под Лицензия Apache 2.0.[2]
GWT подчеркивает многоразовый подходы к общим задачам веб-разработки, а именно асинхронные удаленные вызовы процедур, управление историей, закладки, UI абстракция интернационализация, и кроссбраузерность переносимость.
История
GWT версии 1.0 RC 1 был выпущен 16 мая 2006 года.[3] Google анонсировал GWT на JavaOne конференция, 2006.[4]
Релиз | Дата |
---|---|
GWT 1.0 | 17 мая 2006 г. |
GWT 1.1 | 11 августа 2006 г. |
GWT 1.2 | 16 ноября 2006 г. |
GWT 1.3 | 5 февраля 2007 г. |
GWT 1.4 | 28 августа 2007 г. |
GWT 1.5 | 27 августа 2008 г. |
GWT 1.6 | 7 апреля 2009 г. |
GWT 1.7 | 13 июля 2009 г. |
GWT 2.0 | 8 декабря 2009 г. |
GWT 2.1.0 | 19 октября 2010 г. |
GWT 2.2.0 | 11 февраля 2011 г. |
GWT 2.3.0 | 3 мая 2011 г. |
GWT 2.4.0 | 8 сентября 2011 г. |
GWT 2.5.0 | Октябрь 2012 г. |
GWT 2.5.1 | Март 2013 г. |
GWT 2.6.0 | 30 января 2014 г. |
GWT 2.6.1 | 10 мая 2014 г. |
GWT 2.7.0 | 20 ноября 2014 г. |
GWT 2.8.0 | 20 октября 2016 г. |
GWT 2.8.1 | 24 апреля 2017 г. |
GWT 2.8.2 | 19 октября 2017 г. |
GWT 2.9.0 | 2 мая, 2020 |
В августе 2010 года компания Google приобрела Instantiations,[5] компания, известная своим вниманием к инструментам разработчика Eclipse Java, включая GWT Designer, который теперь связан с Плагин Google для Eclipse.
В 2011 году с введением Язык программирования дарт, Google заверил сообщество GWT, что GWT будет продолжать поддерживаться в обозримом будущем, но также намекнул на возможное сближение двух подходов Google к «структурированному веб-программированию». Однако они также признали, что ряд инженеров, ранее работавших над GWT, теперь работают над Дротик.[6]
В 2012 году на своей ежегодной конференции ввода-вывода Google объявил, что GWT будет преобразован из проекта Google в проект с полностью открытым исходным кодом.[7] В июле 2013 года Google опубликовал в своем блоге GWT сообщение о завершении преобразования в проект с открытым исходным кодом.[8]
Разработка с GWT
Используя GWT, разработчики могут разрабатывать и отлаживать Аякс приложения на языке Java с использованием инструментов разработки Java по своему выбору. Когда приложение развернуто, кросс-компилятор GWT переводит приложение Java в автономное JavaScript файлы, которые необязательно запутанный и глубоко оптимизирован. При необходимости JavaScript также может быть встроен непосредственно в код Java с использованием комментариев Java.[9]
GWT не вращается только вокруг программирования пользовательского интерфейса; это общий набор инструментов для создания любых высокопроизводительных клиентских функций JavaScript. Действительно, многие ключевые архитектурные решения полностью оставлены на усмотрение разработчика. Заявление о миссии GWT[10] разъясняет философское разделение роли GWT и роли разработчика. Примером этого является история: хотя GWT управляет токенами истории, когда пользователи нажимают «Назад» или «Вперед» в браузере, он не предписывает, как отображать токены истории в состояние приложения.
Приложения GWT могут работать в двух режимах:
- Режим разработки (ранее Размещенный режим): Приложение запускается как байт-код Java в Виртуальная машина Java (JVM).[11] Этот режим обычно используется для разработки, поддержки горячая замена кода и отладка. В 2014 году классическая реализация Dev Mode перестала работать из-за обновлений браузера.[12][13] до его замены на более совместимую Режим супер-разработки, который стал по умолчанию в GWT 2.7.[14]
- Режим производства (ранее Интернет-режим): Приложение запускается как чистый JavaScript и HTML, скомпилированный из исходного кода Java. Этот режим обычно используется для развертывания.
Несколько open-source плагины доступны для упрощения разработки GWT с другими Иды, в том числе GWT4NB[15] за NetBeans, Cypal Studio для GWT[16] (ан Затмение плагин) и GWT Developer для JDeveloper. В Плагин Google для Eclipse обрабатывает большинство задач, связанных с GWT, в среде IDE, включая создание проектов, вызов компилятора GWT, создание конфигураций запуска GWT, проверку и подсветка синтаксиса.
Составные части
Основные компоненты GWT включают:
- Компилятор GWT Java-to-JavaScript[17][18]
- Переводит язык программирования Java на язык программирования JavaScript.
- Режим разработки GWT
- Позволяет разработчикам запускать и выполнять приложения GWT в режиме разработки (приложение работает как Java в JVM без компиляции в JavaScript). До версии 2.0 режим хостинга GWT предоставлял специальный «хост-браузер» для отладки кода GWT. В версии 2.0 отлаживаемая веб-страница просматривается в обычном браузере. Режим разработки поддерживается за счет использования подключаемого модуля с собственным кодом, который называется подключаемым модулем разработчика Google Web Toolkit для многих популярных браузеров.
- Библиотека эмуляции JRE
- Реализации JavaScript часто используемых классов в стандартной библиотеке классов Java (например, большинство классов пакета java.lang и подмножество классов пакета java.util).
- Библиотека классов веб-интерфейса GWT
- Набор настраиваемых интерфейсов и классов для создания виджеты.
Функции
- Динамичный и многоразовый Компоненты пользовательского интерфейса: программисты могут использовать заранее спроектированные классы для реализации трудоемких динамических действий, таких как перетаскивание или сложные визуальные древовидные структуры.[19]
- Простой RPC механизм
- Управление историей браузера
- Поддержка полнофункциональной отладки Java[4]
- GWT решает некоторые проблемы кроссбраузерности для разработчика.[4]
- Модульное тестирование интеграция
- Поддержка для Интернационализация и локализация
- Поддержка HTML Canvas (возможны изменения API)[20]
- Разработчики могут смешивать рукописный JavaScript с исходным кодом Java, используя собственный интерфейс JavaScript (JSNI).
- Поддержка использования Google API в приложениях GWT (изначально поддержка Google Gears )
- Открытый исходный код
- Разработчики могут проектировать и разрабатывать свои приложения чисто объектно-ориентированным способом, поскольку они используют Java (вместо JavaScript).[19] Распространенные ошибки JavaScript, такие как опечатки и несоответствие типов, перехватываются во время компиляции.
- JavaScript, который генерирует компилятор GWT, может быть либо не запутанным и более простым для понимания, либо запутанным и меньшего размера для загрузки.[19]
- Для GWT доступен ряд библиотек от Google и третьих лиц. Они расширяют возможности GWT.[19]
Доступные виджеты
Начиная с версии 2.4 (сентябрь 2011 г.), GWT предлагает несколько виджеты[21] и панели.[21]
Виджеты | Панели |
---|---|
Кнопка | PopupPanel |
Нажать кнопку | StackPanel |
Переключатель | StackLayoutPanel |
CheckBox | Горизонтальная панель |
DatePicker | Вертикальная панель |
Кнопка-переключатель | FlowPanel |
Текстовое окно | VerticalSplitPanel |
PasswordTextBox | HorizontalSplitPanel |
TextArea | SplitLayoutPanel |
Гиперссылка | ДокПанель |
ListBox | DockLayoutPanel |
CellList | TabPanel |
Строка меню | TabLayoutPanel |
Дерево | DisclosurePanel |
CellTree | |
SuggestBox | |
RichTextArea | |
FlexTable | |
Сетка | |
CellTable | |
CellBrowser | |
TabBar | |
Диалоговое окно |
Многие общие виджеты, которых нет в GWT, были реализованы в сторонних библиотеках.
Использование на предприятии
GWT использует или поддерживает Ява, Apache Tomcat (или аналогичный веб-контейнер), Eclipse IDE, Internet Explorer,[22] и интернационализация и локализация. GWT на основе Java RIA можно протестировать с помощью JUnit фреймворк тестирования и инструменты покрытия кода. Поскольку GWT позволяет проверять изображения, CSS и бизнес-логику во время компиляции, многие распространенные дефекты разработки автоматически обнаруживаются без необходимости ручного тестирования, обычно требуемого RIA.
Google отмечает, что некоторые из его продуктов основаны на GWT:[23] Blogger, AdWords, Рейсы, Бумажник, Предложения, Группы, Входящие.[24]
GWT 2.0
8 декабря 2009 г. Google запустил Google Web Toolkit 2.0 с Speed Tracer.[25]
Версия 2.0 GWT предлагает ряд новых функций,[26] включая:
- Режим разработки в браузере (ранее называвшийся внепроцессным размещенным режимом, OOPHM): до версии 2.0 размещенный режим использовался для встраивания модифицированного браузера, позволяющего запускать версию приложения с байт-кодом во время разработки. В версии 2.0 размещенный режим, переименованный в «режим разработки», позволяет использовать любой (поддерживаемый) браузер для просмотра отлаживаемой страницы с помощью плагина браузера. Плагин взаимодействует с оболочкой режима разработки с помощью TCP / IP, что позволяет выполнять кросс-платформенную отладку (например, отладку в Internet Explorer в Windows из оболочки режима разработки, работающей на компьютере Linux).
- Разделение кода: когда разработчик предоставляет «точки разделения» в исходном коде, компилятор GWT сможет разделить код JavaScript на несколько небольших фрагментов вместо одной большой загрузки. Это приведет к сокращению времени запуска приложения, поскольку размер начальной загрузки уменьшится.
- Декларативный пользовательский интерфейс: используя формат XML, новая функция, известная как UiBinder, позволяет создавать пользовательские интерфейсы посредством объявления, а не кода. Это позволяет четко разделить построение пользовательского интерфейса и реализацию поведения.
- Объединение ресурсов: интерфейс ClientBundle позволяет объединять ресурсы любого характера (изображения, CSS, текст, двоичные файлы) и передавать за одну загрузку, что приводит к меньшему количеству обращений к серверу и, следовательно, снижению задержки приложения.
Поскольку в новом режиме разработки была удалена большая часть кода, зависящего от платформы, новая версия будет распространяться в виде уникального архива, а не по одному на каждую поддерживаемую платформу, как это было в предыдущих версиях.
Мобильный
В качестве общей основы для создания веб-приложений GWT также может использоваться в качестве основы для создания приложений для мобильных устройств и планшетов, создавая необходимые виджеты и анимацию с нуля или используя одну из мобильных платформ для GWT. Приложение HTML5, написанное на GWT, может иметь отдельные представления для планшетов и мобильных телефонов.
Смотрите также
- Dart (язык программирования)
- Плагин Google для Eclipse
- Код Google
- Сравнение фреймворков JavaScript
- Сравнение веб-фреймворков
- Emscripten для преобразования C ++ в JavaScript или WebAssembly
Рекомендации
- ^ «Политика использования имени GWT». Google. Получено 2014-04-23.
- ^ "Информация о лицензии Google Web Toolkit". Google. 23 февраля 2007 г.. Получено 2007-09-25.
- ^ "Архив выпусков Google Web Toolkit". Google. Получено 2007-09-25.
- ^ а б c Олсон, Стивен Дуглас (2007). Ajax на Java. О'Рейли. п. 183. ISBN 978-0-596-10187-9.
- ^ Рамсдейл, Крис. "Google перезапускает инструменты разработчика для создания экземпляров".
- ^ "Блог Google Web Toolkit: GWT и Dart". Googlewebtoolkit.blogspot.com. 2011-11-10. Получено 2013-06-16.
- ^ Vaadin поддержит разработку Google Web Toolkit (GWT). vaadin.com (29.06.2012). Проверено 15 мая 2014.
- ^ Блог Google Web Toolkit: Новости GWT. Googlewebtoolkit.blogspot.com (15.07.2013). Проверено 15 мая 2014.
- ^ «Основы кодирования - собственный интерфейс JavaScript (JSNI) - Google Web Toolkit - разработчики Google». Developers.google.com. 2012-10-25. Получено 2013-06-16.
- ^ Заявление о миссии GWT
- ^ Отладка в режиме разработки
- ^ «Режим разработки не будет поддерживаться в Firefox 27+». [email protected] (Список рассылки).
- ^ «Плагин разработчика GWT больше не работает с Chrome в Linux». [email protected] (Список рассылки).
- ^ «Режим супер-разработки».
- ^ GWT4NB
- ^ Cypal Studio для GWT
- ^ "com.google.gwt.dev.Compiler".
Основная исполняемая точка входа для компилятора GWT Java to JavaScript.
- ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler".
База для классов, компилирующих Java
JPпрограмма
представления в соответствующий источник Js. - ^ а б c d Перри, Брюс В. (2007). Google Web Toolkit для Ajax. Короткие сокращения О'Рейли. О'Рейли. С. 1–5. ISBN 978-0-596-51022-0.
- ^ "GWT Javadoc Canvas".
- ^ а б «Список виджетов». Google. Получено 2012-05-21.
- ^ GWT Project. GWT Project. Проверено 15 мая 2014.
- ^ «Google I / O 2012 - История и будущее Google Web Toolkit». GoogleDevelopers. Получено 2013-03-18.
- ^ Тубасси, Гаррик. "Под капотом Inbox". Официальный блог Gmail. Получено 22 ноября 2014.
- ^ Представляем Google Web Toolkit 2.0, теперь с Speed Tracer
- ^ «Анонс GWT 2.0 - веха 1». Амит Манджи. Получено 2009-10-05.
Библиография
- Дьюсбери, Райан (15 декабря 2007 г.). Приложения Google Web Toolkit. Prentice Hall. п. 608. ISBN 978-0-321-50196-7.
- Чаганти, Прабхакар (15 февраля 2007 г.). Google Web Toolkit: программирование GWT Java Ajax. Packt Publishing. п. 248. ISBN 978-1-84719-100-7.
- Гири, Дэвид (17 ноября 2007 г.). Решения Google Web Toolkit: больше интересных и полезных вещей. Prentice Hall. п. 408. ISBN 978-0-13-234481-4.
- Хэнсон, Роберт; Адам Тейси (7 февраля 2013 г.). GWT в действии (2-е изд.). Укомплектование персоналом. п. 643. ISBN 978-1-935182-84-9.
- Купер, Роберт; Чарли Коллинз (12 мая 2008 г.). GWT на практике. Укомплектование персоналом. п.376. ISBN 978-1-933988-29-0.