Zum Inhalt springen

„Google Web Toolkit“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K BKL
 
(30 dazwischenliegende Versionen von 18 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:

{{Infobox Software
{{Infobox Software
| Name = <!-- Nur falls abweichend vom Artikelnamen -->
|Name = <!-- Nur falls abweichend vom Artikelnamen -->
| Logo =
|Logo =
| Screenshot = <!-- Bildschirmfoto -->
|Screenshot = <!-- Bildschirmfoto -->
| Beschreibung = Web-Programmierumgebung
|Beschreibung = Web-Programmierumgebung
| Maintainer =
|Maintainer =
| Hersteller = [[Google Inc.]]
|Hersteller = <!-- wikidata -->
| Erscheinungsjahr =
|Erscheinungsjahr =
| AktuelleVersion = 2.8.0
|AktuelleVersion = <!-- wikidata -->
| AktuelleVersionFreigabeDatum = 20. Oktober 2016
|AktuelleVersionFreigabeDatum = <!-- wikidata -->
| AktuelleVorabVersion =
|AktuelleVorabVersion =
| AktuelleVorabVersionFreigabeDatum =
|AktuelleVorabVersionFreigabeDatum =
| Betriebssystem = [[Microsoft Windows|Windows]], [[Linux]], [[Mac OS X]], [[Solaris (Betriebssystem)|Solaris]], [[FreeBSD]]
|Betriebssystem = [[Microsoft Windows|Windows]], [[Linux]], [[macOS]], [[Solaris (Betriebssystem)|Solaris]], [[FreeBSD]]
| Programmiersprache =
|Programmiersprache = <!-- wikidata -->
| Kategorie = [[Programmierumgebung]] / [[Compiler]]
|Kategorie = [[Programmierumgebung]] / [[Compiler]]
| Lizenz = [[Apache-Lizenz|ASL]] ([[Freie Software]])
|Lizenz = <!-- wikidata -->
| Deutsch = nein
|Deutsch = nein
| Website = [http://www.gwtproject.org/ GWT Homepage]
|Website = <!-- wikidata -->
|Dateien =
}}
}}


Das '''Google Web Toolkit''' ('''GWT''' [{{IPA|ɡʉˑiˑt}}]) ist ein [[Freie Software|freies]] [[Webframework]]. Mit GWT können [[Webanwendung]]en in der Programmiersprache [[Java (Programmiersprache)|Java]] entwickelt werden.
Das '''Google Web Toolkit''' ('''GWT''' [{{IPA|ɡʉˑiˑt}}]) ist ein [[Toolkit|Werkzeugsatz]] zur Entwicklung von [[Webanwendung]]en. Es wurde am 17. Mai 2006 von Google als [[freie Software]] unter den Bedingungen von Version 2.0 der [[Apache-Lizenz]] veröffentlicht. Seine Besonderheit ist ein [[Java (Programmiersprache)|Java]]-nach-[[JavaScript]]-[[Compiler]], so dass nahezu die gesamte Entwicklung von Client und Server mit Java realisiert werden kann. Weiterhin ist das GWT mit einem [[XML-Prozessor#XML-Parser|XML-Parser]], Internationalisierungsunterstützung, einer Schnittstelle für [[Remote Procedure Call]]s, Integration von [[JUnit]] und einem Widget-Paket zur Gestaltung von graphischen Oberflächen ([[grafische Benutzeroberfläche|GUI]]) ausgestattet. Diese können ähnlich wie mit [[Swing (Java)|Swing]] erstellt werden.


== Details ==
Was das GWT von anderen Frameworks dieser Art unterscheidet, ist die Tatsache, dass auch clientseitiger Code in Java entwickelt werden kann. Dies kann von Vorteil sein, da bekannte Werkzeuge aus der Java-Entwicklung (z.B. [[Integrierte Entwicklungsumgebung|Entwicklungsumgebungen]]) weiter verwendet werden können. Außerdem ist ein Anwendungsserver ([[Apache Tomcat|Tomcat]] bzw. [[Jetty (Webserver)|Jetty]]) enthalten, der in der Entwicklungsphase im Hosted-Modus verwendet werden kann, um die Anwendung auszuführen.

GWT wurde am 17. Mai 2006 von Google unter den Bedingungen von Version 2.0 der [[Apache-Lizenz]] veröffentlicht. Seine Besonderheit ist ein [[Java (Programmiersprache)|Java]]-nach-[[JavaScript]]-[[Compiler]], so dass nahezu die gesamte Entwicklung von Client und Server mit Java realisiert werden kann. Weiterhin ist das GWT mit einem [[XML-Prozessor#XML-Parser|XML-Parser]], Internationalisierungsunterstützung, einer Schnittstelle für [[Remote Procedure Call]]s, Integration von [[JUnit]] und einem [[Steuerelement|Widget]]-Paket zur Gestaltung von graphischen Oberflächen ([[Grafische Benutzeroberfläche|GUI]]) ausgestattet. Diese können ähnlich wie mit [[Swing (Java)|Swing]] erstellt werden.

Was das GWT von anderen Frameworks dieser Art unterscheidet, ist die Tatsache, dass auch clientseitiger Code in Java entwickelt werden kann. Dies kann von Vorteil sein, da bekannte Werkzeuge aus der Java-Entwicklung (z.&nbsp;B. [[Integrierte Entwicklungsumgebung|Entwicklungsumgebungen]]) weiter verwendet werden können. Außerdem ist ein Anwendungsserver ([[Apache Tomcat|Tomcat]] bzw. [[Jetty (Webserver)|Jetty]]) enthalten, der in der Entwicklungsphase im Hosted-Modus verwendet werden kann, um die Anwendung auszuführen.


== Asynchrone Kommunikation ==
== Asynchrone Kommunikation ==
Zeile 29: Zeile 35:
Über das ''JavaScript Native Interface'' (''JSNI'' [{{IPA|ɟisniː}}]) lässt sich JavaScript direkt in den Java-Code einbinden, so dass spezifische Erweiterungen möglich sind, die sich nicht durch den Umfang der Java-Bibliotheken aus dem GWT realisieren lassen.
Über das ''JavaScript Native Interface'' (''JSNI'' [{{IPA|ɟisniː}}]) lässt sich JavaScript direkt in den Java-Code einbinden, so dass spezifische Erweiterungen möglich sind, die sich nicht durch den Umfang der Java-Bibliotheken aus dem GWT realisieren lassen.


== GWT 2.0 ==
== Versionen ==

=== GWT 2.0 ===
Die finale Version 2.0 des GWT ist seit dem 8.&nbsp;Dezember 2009 verfügbar. Dort sind unter anderem die folgenden Neuerungen enthalten:
Die finale Version 2.0 des GWT ist seit dem 8.&nbsp;Dezember 2009 verfügbar. Dort sind unter anderem die folgenden Neuerungen enthalten:
; In-Browser Development Mode
; In-Browser Development Mode: In den Versionen vor 2.0 wurden die Anwendungen während des Entwicklungsprozesses im ''hosted mode browser'' ausgeführt. Dabei handelte es sich um einen modifizierten Browser ([[Internet Explorer]] unter Windows, Safari unter OSX). Der Nachteil dabei war, dass Debugging-Tools wie [[Firebug]] nicht verwendet werden konnten. In der Version 2.0 wurde dieser Ansatz zugunsten des ''Development Mode'' aufgegeben. Dabei handelt es sich um Browser-Plugins, die über TCP/IP mit der Entwickler-Shell kommunizieren. Eine Fehlerbehebung ist somit in jedem Browser möglich, für den ein entsprechendes Plugin existiert.
: In den Versionen vor 2.0 wurden die Anwendungen während des Entwicklungsprozesses im ''hosted mode browser'' ausgeführt. Dabei handelte es sich um einen modifizierten Browser ([[Internet Explorer]] unter Windows, Safari unter OSX). Der Nachteil dabei war, dass Debugging-Tools wie [[Firebug]] nicht verwendet werden konnten. In der Version 2.0 wurde dieser Ansatz zugunsten des ''Development Mode'' aufgegeben. Dabei handelt es sich um Browser-Plugins, die über TCP/IP mit der Entwickler-Shell kommunizieren. Eine Fehlerbehebung ist somit in jedem Browser möglich, für den ein entsprechendes Plugin existiert.
; Code Splitting: Durch die Definition von ''split points'' kann der Entwickler dem Compiler mitteilen, wo der Code in kleinere Abschnitte aufgeteilt werden kann. Dies führt zu schnelleren Ladezeiten, da für den Start der Anwendung nicht mehr der komplette Code vom Webserver geladen werden muss, sondern nur die für den Start benötigten Teile. Der Rest der Anwendung wird nachgeladen, während der Benutzer bereits mit der Anwendung arbeitet.
; Code Splitting
; Bundling von Ressourcen mit dem ClientBundle: Die Schnittstelle ''ClientBundle'' erlaubt nun die Verwendung von [[Ressource (Software)|Ressourcen]] jeglicher Art (nicht nur Bilddateien wie in den Veröffentlichungen vor 2.0). Die im Bündel enthaltenen Ressourcen werden von GWT zusammengefasst und in einem einzigen Download vom Server an den Client übertragen.
: Durch die Definition von ''split points'' kann der Entwickler dem Compiler mitteilen, wo der Code in kleinere Abschnitte aufgeteilt werden kann. Dies führt zu schnelleren Ladezeiten, da für den Start der Anwendung nicht mehr der komplette Code vom Webserver geladen werden muss, sondern nur die für den Start benötigten Teile. Der Rest der Anwendung wird nachgeladen, während der Benutzer bereits mit der Anwendung arbeitet.
; Deklaratives Layout mit dem ''UiBinder'': Mit diesem neuen Merkmal werden die Elemente der Benutzeroberfläche nicht mehr wie bisher im Java-Code erstellt, sondern in einer XML-Datei definiert. Damit wird eine Trennung zwischen Oberflächengestaltung und Implementation der Anwendungslogik realisiert.
; Bundling von Ressourcen mit dem ClientBundle
: Die Schnittstelle ''ClientBundle'' erlaubt nun die Verwendung von [[Ressource (Software)|Ressourcen]] jeglicher Art (nicht nur Bilddateien wie in den Veröffentlichungen vor 2.0). Die im Bündel enthaltenen Ressourcen werden von GWT zusammengefasst und in einem einzigen Download vom Server an den Client übertragen.
; Deklaratives Layout mit dem ''UiBinder''
: Mit diesem neuen Merkmal werden die Elemente der Benutzeroberfläche nicht mehr wie bisher im Java-Code erstellt, sondern in einer XML-Datei definiert. Damit wird eine Trennung zwischen Oberflächengestaltung und Implementation der Anwendungslogik realisiert.


== GWT 2.5 ==
=== GWT 2.5 ===
Die finale Version 2.5 ist seit dem 25. Oktober 2012 verfügbar. Dort sind unter anderem folgende Neuerungen enthalten:
Die finale Version 2.5 ist seit dem 25. Oktober 2012 verfügbar. Dort sind unter anderem folgende Neuerungen enthalten:
;Super Dev Mode: Ein experimenteller Ersatz für den Development Mode.
; Super Dev Mode
: Ein experimenteller Ersatz für den Development Mode.
; Elemental
;Elemental: Eine experimentelle Bibliothek für schnelle, leichtgewichtige, browsernahe Web-Programmierung.
: Eine experimentelle Bibliothek für schnelle, leichtgewichtige, browsernahe Web-Programmierung.
;Compiler-Optimierungen: GWT kann optional den Closure-Compiler nutzen, um weitere Optimierungen in JavaScript zu erreichen. Der Closure-Compiler bietet eine Reihe von Optimierungen, die die Codegröße und Ausführungsgeschwindigkeit verbessern, dadurch wird allerdings der GWT-Compiler langsamer.
; Compiler-Optimierungen
;Verbesserte Unterstützung der ARIA Bibliothek: Die ARIA Bibliothek unterstützt den W3C ARIA Accessibility Standard.
: GWT kann optional den Closure-Compiler nutzen, um weitere Optimierungen in JavaScript zu erreichen. Der Closure-Compiler bietet eine Reihe von Optimierungen, die die Codegröße und Ausführungsgeschwindigkeit verbessern, dadurch wird allerdings der GWT-Compiler langsamer.
;Verbesserungen im UIBinder:
; Unterstützung des [[Accessible Rich Internet Applications|ARIA]]-Standards
;Erweiterungen der Unterstützung für Bean Validation: Erweiterung und Einbindung der Unterstützung der JSR-303-Bean-Validation-Spezifikation.
; Verbesserungen im UIBinder
; Erweiterungen der Unterstützung für ''Bean Validation''
: Erweiterung und Einbindung der Unterstützung der JSR-303-Bean-Validation-Spezifikation.


== GWT 2.7 ==
=== GWT 2.7 ===
Die finale Version 2.7 ist seit dem 20. November 2014 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:
Die finale Version 2.7 ist seit dem 20. November 2014 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:
;Super Dev Mode: standardmäßig als default aktiviert; inklusive Perfomance-Verbesserung.
; Super Dev Mode
: standardmäßig als default aktiviert; inklusive Performance-Verbesserung.
;GSS: Experimentelle Unterstützung von „Closure Stylesheets“ (auch ''Google Stylesheets'' oder ''GSS'' genannt).
; GSS: Experimentelle Unterstützung von „Closure Stylesheets“<ref>[http://www.golem.de/1111/87837.html Google veröffentlicht Closure Stylesheets], golem.de, 18. November 2011</ref> (auch ''Google Stylesheets'' oder ''GSS'' genannt).
;GWT Designer: wird nicht mehr unterstützt.
; GWT Designer
: wird nicht mehr unterstützt.
;Linker: IFrameLinker und XSLinker sind als veraltet markiert.
; Linker
: IFrameLinker und XSLinker sind als veraltet markiert.


== GWT 2.8 ==
=== GWT 2.8 ===
Die finale Version 2.8 ist seit dem 20. Oktober 2016 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:
Die finale Version 2.8 ist seit dem 20. Oktober 2016 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:
;Source: Es wird nun mindestens Java 8 benötigt.
; Source
: Es wird nun mindestens Java 8 benötigt.
;API-Unterstützung: Unterstützung von vielen Java 8 APIs von Standard-Bibliotheken.
; API-Unterstützung
: Unterstützung von vielen Java 8 APIs von Standard-Bibliotheken.
;JavaScript: Einbindung der JSInterop-Spezifikation.
; JavaScript
: Einbindung der JSInterop-Spezifikation.
;Classic Dev Mode: Der „Classic Dev Mode“ ist als "deprecated" markiert.
; Classic Dev Mode
: Der „Classic Dev Mode“ ist als veraltet markiert.
;JSR 303 Bean Validation: Die „JSR 303 Bean Validation“-Unterstützung ist als "deprecated" markiert.
; JSR 303 Bean Validation
: Die „JSR 303 Bean Validation“-Unterstützung ist als veraltet markiert und wird als externes Projekt auf Github<ref>[https://github.com/ManfredTremmel/gwt-bean-validators#gwt bean validators]</ref> fortgeführt.
;GSS: Volle Unterstützung der „Closure Stylesheets“ (GSS).
; GSS
;CssResource: Die „CssResource“-Syntax ist als "veraltet" (deprecated") markiert; eine Migration der „CssResource“-Syntax zu GSS wird empfohlen.
: Volle Unterstützung der „Closure Stylesheets“ (GSS).
; CssResource
: Die „CssResource“-Syntax ist als veraltet markiert; eine Migration der „CssResource“-Syntax zu GSS wird empfohlen.

=== GWT 2.9 ===
Die finale Version 2.9.0 ist seit dem 13. Mai 2020 verfügbar<ref>{{Internetquelle |url=http://www.gwtproject.org/release-notes.html#Release_Notes_2_9_0 |titel=GWT Project |abruf=2021-02-24}}</ref>. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:

;Source
: Unterstützung der Sprachfeatures von Java 9,10 und 11.
:Unterstützung der Lauffähigkeit unter Java 8–14
; API-Unterstützung
: Verbesserte Unterstützung von JSInterop


== Siehe auch ==
== Siehe auch ==
* [[Remote Application Platform]] – ähnlicher Ansatz zur Erstellung von Webapplikationen rein auf Java-Basis
* [[Remote Application Platform]] – ähnlicher Ansatz zur Erstellung von Webapplikationen rein auf Java-Basis
* [[Vaadin]] - ein auf der Client-Seite auf GWT aufbauendes Web Framework.
* [[Vaadin]] ein auf der Client-Seite früher auf GWT aufbauendes Webframework.


== Literatur ==
== Literatur ==
* {{Literatur
* {{Literatur | Autor=Adam Tacy, Robert Hanson, Jason Essington | Titel=GWT in Action | Auflage=2 | Verlag=Manning | Jahr=2013 | Monat=2 | Tag=21 | ISBN=978-1935182849}}
|Autor=Adam Tacy, Robert Hanson, Jason Essington
* {{Literatur | Autor=Adam Tacy, Robert Hanson | Titel=GWT im Einsatz | TitelErg=AJAX-Anwendungen entwickeln mit dem Google Web Toolkit | Auflage=1 | Verlag=Carl Hanser | Jahr=2007 | Monat=10 | Tag=4 | ISBN=978-3446412415 | Originaltitel=GWT in Action | Originalsprache=en | Übersetzer=Christian Alkemper}}
|Titel=GWT in Action
* Michael Seemann: ''Das Google Web Toolkit: GWT'', O'Reilly Verlag, 2007, ISBN 978-3897217195
|Auflage=2
* Hans Sowa / Wolfgang Radinger / Martin Marinschek: ''[http://dpunkt.de/buecher/2669.html Google Web Toolkit]'', dpunkt.verlag, 2008, ISBN 978-3-89864-471-6
|Verlag=Manning
* Federico Kereki: ''Essential GWT'', Addison Wesley, 2010, ISBN 978-0-321-70514-3
|Datum=2013
* Ralph Steyer: ''Google Web Toolkit'', entwickler.press, 2007, ISBN 978-3-939084-21-1
|ISBN=978-1-935182-84-9}}
* {{Literatur
|Autor=Adam Tacy, Robert Hanson
|Titel=GWT im Einsatz.AJAX-Anwendungen entwickeln mit dem Google Web Toolkit
|Auflage=1.
|Verlag=Carl Hanser
|Datum=2007
|ISBN=978-3-446-41241-5
|Originaltitel=GWT in Action
|Originalsprache=en
|Übersetzer=Christian Alkemper}}
* Michael Seemann: ''Das Google Web Toolkit: GWT''. O’Reilly Verlag, 2007, ISBN 978-3-89721-719-5
* Hans Sowa, Wolfgang Radinger, Martin Marinschek: ''Google Web Toolkit''. dpunkt.verlag, 2008, ISBN 978-3-89864-471-6
* Federico Kereki: ''Essential GWT''. Addison-Wesley, 2010, ISBN 978-0-321-70514-3
* Ralph Steyer: ''Google Web Toolkit''. entwickler.press, 2007, ISBN 978-3-939084-21-1


== Weblinks ==
== Weblinks ==
* [https://developers.google.com/web-toolkit/?hl=de Offizielle Webpräsenz]
* [http://www.gwtproject.org/?hl=de Offizielle Webpräsenz]
* [https://webtoolkit.googleblog.com/ Offizieller Blog zum Google Web Toolkit]
* [http://angel.hurtado.googlepages.com/tutorialgwt2 Einführung für GWT mit PHP-Backend]

* {{Google Code|GWTPHP}} – PHP für GWT
== Einzelnachweise ==
* [http://gwtquickstart.blogspot.com GWT Quickstart] – Sammlung von Einführungen zu GWT (englisch)
<references />
* [http://www.linux-magazin.de/Online-Artikel/Google-Web-Toolkit-GWT Einführungen zu GWT] auf ''linux-magazin.de''

* [http://googlewebtoolkit.blogspot.com/ Blog zum Google Web Toolkit]
{{Normdaten|TYP=s|GND=7562738-3}}
* [http://jaxenter.de/GWT-meets-Ajax-und-PHP-5362.html GWT meets Ajax und PHP] Artikel aus dem Java Magazin
* [http://ejohn.org/blog/javascript-language-abstractions/ Nachteile der Sprachabstraktion] Artikel von John Resig


[[Kategorie:Freies Webframework]]
[[Kategorie:Freies Webframework]]

Aktuelle Version vom 23. Oktober 2021, 09:02 Uhr

Google Web Toolkit

Basisdaten

Entwickler Google
Erscheinungsjahr 16. Mai 2006[1]
Aktuelle Version 2.12.2[2]
(3. März 2025)
Aktuelle Vorabversion 1.0 RC 1[1]
(16. Mai 2006)
Betriebssystem Windows, Linux, macOS, Solaris, FreeBSD
Programmier­sprache Java, JavaScript
Kategorie Programmierumgebung / Compiler
Lizenz Apache-Lizenz, Version 2.0[3]
deutschsprachig nein
www.gwtproject.org

Das Google Web Toolkit (GWT [ɡʉˑiˑt]) ist ein freies Webframework. Mit GWT können Webanwendungen in der Programmiersprache Java entwickelt werden.

GWT wurde am 17. Mai 2006 von Google unter den Bedingungen von Version 2.0 der Apache-Lizenz veröffentlicht. Seine Besonderheit ist ein Java-nach-JavaScript-Compiler, so dass nahezu die gesamte Entwicklung von Client und Server mit Java realisiert werden kann. Weiterhin ist das GWT mit einem XML-Parser, Internationalisierungsunterstützung, einer Schnittstelle für Remote Procedure Calls, Integration von JUnit und einem Widget-Paket zur Gestaltung von graphischen Oberflächen (GUI) ausgestattet. Diese können ähnlich wie mit Swing erstellt werden.

Was das GWT von anderen Frameworks dieser Art unterscheidet, ist die Tatsache, dass auch clientseitiger Code in Java entwickelt werden kann. Dies kann von Vorteil sein, da bekannte Werkzeuge aus der Java-Entwicklung (z. B. Entwicklungsumgebungen) weiter verwendet werden können. Außerdem ist ein Anwendungsserver (Tomcat bzw. Jetty) enthalten, der in der Entwicklungsphase im Hosted-Modus verwendet werden kann, um die Anwendung auszuführen.

Asynchrone Kommunikation

[Bearbeiten | Quelltext bearbeiten]

Die Kommunikation zwischen Client und Server ist über Remote Procedure Calls möglich. Das GWT bietet hierfür zwei Möglichkeiten: Einerseits kann JSON verwendet werden. Für umfangreiche Anfragen stehen außerdem die Klassen aus dem Paket com.google.gwt.user.client.rpc zur Verfügung. Die Kommunikation wird hierbei mit dem proprietären Protokoll GWT-RPC durchgeführt, welches die Serialisierung und Deserialisierung von Java-Objekten transparent macht. Auf diese Weise müssen Daten, die vom Server geliefert werden, nicht manuell in Objekte konvertiert werden. Weiterhin stellt das Interface AsyncCallback (aus dem oben genannten Paket) zwei Methoden bereit, mit denen auf den Erfolgs- und Fehlerfall einer Anfrage reagiert werden kann. Für den zweiten Ansatz ist die Verwendung eines Servlet-Servers notwendig.

Verwendung von JavaScript

[Bearbeiten | Quelltext bearbeiten]

Über das JavaScript Native Interface (JSNI [ɟisniː]) lässt sich JavaScript direkt in den Java-Code einbinden, so dass spezifische Erweiterungen möglich sind, die sich nicht durch den Umfang der Java-Bibliotheken aus dem GWT realisieren lassen.

Die finale Version 2.0 des GWT ist seit dem 8. Dezember 2009 verfügbar. Dort sind unter anderem die folgenden Neuerungen enthalten:

In-Browser Development Mode
In den Versionen vor 2.0 wurden die Anwendungen während des Entwicklungsprozesses im hosted mode browser ausgeführt. Dabei handelte es sich um einen modifizierten Browser (Internet Explorer unter Windows, Safari unter OSX). Der Nachteil dabei war, dass Debugging-Tools wie Firebug nicht verwendet werden konnten. In der Version 2.0 wurde dieser Ansatz zugunsten des Development Mode aufgegeben. Dabei handelt es sich um Browser-Plugins, die über TCP/IP mit der Entwickler-Shell kommunizieren. Eine Fehlerbehebung ist somit in jedem Browser möglich, für den ein entsprechendes Plugin existiert.
Code Splitting
Durch die Definition von split points kann der Entwickler dem Compiler mitteilen, wo der Code in kleinere Abschnitte aufgeteilt werden kann. Dies führt zu schnelleren Ladezeiten, da für den Start der Anwendung nicht mehr der komplette Code vom Webserver geladen werden muss, sondern nur die für den Start benötigten Teile. Der Rest der Anwendung wird nachgeladen, während der Benutzer bereits mit der Anwendung arbeitet.
Bundling von Ressourcen mit dem ClientBundle
Die Schnittstelle ClientBundle erlaubt nun die Verwendung von Ressourcen jeglicher Art (nicht nur Bilddateien wie in den Veröffentlichungen vor 2.0). Die im Bündel enthaltenen Ressourcen werden von GWT zusammengefasst und in einem einzigen Download vom Server an den Client übertragen.
Deklaratives Layout mit dem UiBinder
Mit diesem neuen Merkmal werden die Elemente der Benutzeroberfläche nicht mehr wie bisher im Java-Code erstellt, sondern in einer XML-Datei definiert. Damit wird eine Trennung zwischen Oberflächengestaltung und Implementation der Anwendungslogik realisiert.

Die finale Version 2.5 ist seit dem 25. Oktober 2012 verfügbar. Dort sind unter anderem folgende Neuerungen enthalten:

Super Dev Mode
Ein experimenteller Ersatz für den Development Mode.
Elemental
Eine experimentelle Bibliothek für schnelle, leichtgewichtige, browsernahe Web-Programmierung.
Compiler-Optimierungen
GWT kann optional den Closure-Compiler nutzen, um weitere Optimierungen in JavaScript zu erreichen. Der Closure-Compiler bietet eine Reihe von Optimierungen, die die Codegröße und Ausführungsgeschwindigkeit verbessern, dadurch wird allerdings der GWT-Compiler langsamer.
Unterstützung des ARIA-Standards
Verbesserungen im UIBinder
Erweiterungen der Unterstützung für Bean Validation
Erweiterung und Einbindung der Unterstützung der JSR-303-Bean-Validation-Spezifikation.

Die finale Version 2.7 ist seit dem 20. November 2014 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:

Super Dev Mode
standardmäßig als default aktiviert; inklusive Performance-Verbesserung.
GSS
Experimentelle Unterstützung von „Closure Stylesheets“[4] (auch Google Stylesheets oder GSS genannt).
GWT Designer
wird nicht mehr unterstützt.
Linker
IFrameLinker und XSLinker sind als veraltet markiert.

Die finale Version 2.8 ist seit dem 20. Oktober 2016 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:

Source
Es wird nun mindestens Java 8 benötigt.
API-Unterstützung
Unterstützung von vielen Java 8 APIs von Standard-Bibliotheken.
JavaScript
Einbindung der JSInterop-Spezifikation.
Classic Dev Mode
Der „Classic Dev Mode“ ist als veraltet markiert.
JSR 303 Bean Validation
Die „JSR 303 Bean Validation“-Unterstützung ist als veraltet markiert und wird als externes Projekt auf Github[5] fortgeführt.
GSS
Volle Unterstützung der „Closure Stylesheets“ (GSS).
CssResource
Die „CssResource“-Syntax ist als veraltet markiert; eine Migration der „CssResource“-Syntax zu GSS wird empfohlen.

Die finale Version 2.9.0 ist seit dem 13. Mai 2020 verfügbar[6]. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:

Source
Unterstützung der Sprachfeatures von Java 9,10 und 11.
Unterstützung der Lauffähigkeit unter Java 8–14
API-Unterstützung
Verbesserte Unterstützung von JSInterop
  • Remote Application Platform – ähnlicher Ansatz zur Erstellung von Webapplikationen rein auf Java-Basis
  • Vaadin – ein auf der Client-Seite früher auf GWT aufbauendes Webframework.
  • Adam Tacy, Robert Hanson, Jason Essington: GWT in Action. 2. Auflage. Manning, 2013, ISBN 978-1-935182-84-9.
  • Adam Tacy, Robert Hanson: GWT im Einsatz.AJAX-Anwendungen entwickeln mit dem Google Web Toolkit. 1. Auflage. Carl Hanser, 2007, ISBN 978-3-446-41241-5 (englisch: GWT in Action. Übersetzt von Christian Alkemper).
  • Michael Seemann: Das Google Web Toolkit: GWT. O’Reilly Verlag, 2007, ISBN 978-3-89721-719-5
  • Hans Sowa, Wolfgang Radinger, Martin Marinschek: Google Web Toolkit. dpunkt.verlag, 2008, ISBN 978-3-89864-471-6
  • Federico Kereki: Essential GWT. Addison-Wesley, 2010, ISBN 978-0-321-70514-3
  • Ralph Steyer: Google Web Toolkit. entwickler.press, 2007, ISBN 978-3-939084-21-1

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. a b code.google.com.
  2. Release 2.12.2. 3. März 2025 (abgerufen am 23. März 2025).
  3. www.gwtproject.org.
  4. Google veröffentlicht Closure Stylesheets, golem.de, 18. November 2011
  5. bean validators
  6. GWT Project. Abgerufen am 24. Februar 2021.