GWT - google Web Toolkit Manuela Hofer Lucia Fiedler Erstellt von: Manuela Hofer, Lucia Fiedler
Inhalt - Überblick Einführung GWT Hauptkomponenten Host- und Web-Modus Kommunikation mit Server Projektstruktur Beispiel in Eclipse Testen und Features Zusammenfassung (Vorteile/Nachteile) Erstellt von: Vorname Nachname tt.mm.jjjj
Einführung GWT Framework für Webanwendungen Für komplexe und iterative Anwendungen 2006 von Google als Apache License 2.0 herausgebracht -> aktuell Version 2.5 Ähnliches Handling wie Swing-Klassen Code für Menschen leichter verständlich Folgende Entwicklungsumgebungen werden unterstützt: Eclipse, NetBeans, IntelliJ, IDEA Erstellt von: Vorname Nachname tt.mm.jjjj
3 Hauptkomponenten Compiler (Java zu Javascript) Entwicklung von Client und Server kann auf Basis von Java realisiert werden JRE Emulation Library (Java-API) Versionen von GWT und JSE beachten Ui Library (GWT-API) Erstellt von: Vorname Nachname tt.mm.jjjj
Funktionsweise des GWT-Compilers Compiler erzeugt aus Java-Code eine Javascript-Datei für jeden Browser-Typ Auswahl der richtigen Datei mittels Bootstrap-Skript (abhängig von Ort und Browser) Code-Optimierung (Stile: obfuscate, pretty, detailed) Erstellt von: Vorname Nachname tt.mm.jjjj
Hosted- Modus Web-Modus Zum entwickeln und testen Java-Bytecode Browser-Plugin notwendig Warnungen werden in einem Steurerfenster ausgegeben Langsamere Ausführung Für Endprodukt Javascript-Dateien Beim Client kein Browser-Plugin notwendig Finale Darstellung Schnellere Ausführungsgeschwindigkeit Erstellt von: Vorname Nachname tt.mm.jjjj
Kommunikation mit Server Remote Procedure Call - Client ruft serverseitige Methoden auf - basiert auf Servlet-Technologie und HTTP-Protokoll - Übertragung von Zeichenketten -> Serialisierung - asynchrone Kommunikation mittels XMLHttpRequest (=JavaScript-Objekt) Erstellt von: Vorname Nachname tt.mm.jjjj
Pojektstruktur MyApp Src Paketname Client MyEntryPoint.java Server MyApp.gwt.xml War WEB-INF Web.xml Mystyle.css My_host_page.html Erstellt von: Vorname Nachname tt.mm.jjjj
Beispiel Installation von Plugin via Eclipse Marketplace Mittels Eclipse-Plugin einfach zu erstellen – gute Benutzerführung New / Google / Web Application Project HelloWorld… Erstellt von: Vorname Nachname tt.mm.jjjj
Module-Descriptor und EntryPoint-Klasse Erstellt von: Vorname Nachname tt.mm.jjjj
Web.xml Erstellt von: Vorname Nachname tt.mm.jjjj
Host-Page Erstellt von: Vorname Nachname tt.mm.jjjj
Testen Mittels Junit Server- und clientseitige Tests möglich Basisklasse GWTTestCase Mittels Tool ‚junitCreator‘ Anfangstestszenario generieren Vorteil: einheitliches Testtool für gesamte Anwendung – auch Oberfläche möglich Erstellt von: Vorname Nachname tt.mm.jjjj
Weitere Features Eigener XML-Parser integriert – basiert auf DOM, als Objektbaum aufbereitet Browser-History: bei Web-Anwendungen oft problematisch, GWT bietet Lösung: Verlauftokens in Quellcode einbauen, mittels Event-Handler aufrufen JavaScript Native Interface (JSNI): Aufruf von JavaScripts in native Javacode möglich, in GWT enthalten Erstellt von: Vorname Nachname tt.mm.jjjj
Vorteile von GWT Fokussierung auf Java -> Client und Server können in selber Programmiersprache erstellt werden -> leichtere Wartung -> Dokumentation über Java leichter -> bessere Typsicherheit -> erkennen von Fehlern noch vor Compilierung, statt erst zur Laufzeit -> Tests automatisieren Java-Installation beim Endkunden nicht notwendig Erstellt von: Vorname Nachname tt.mm.jjjj
Vorteile von GWT Browserunabhängigkeit (JS-Dateien für alle Browsertypen) JS-Dateien werden optimiert Server wird entlastet (GUI-Logik auf Client ausgelagert) Request Factory z.B. Asynchonität OpenSource -> ständige Weiterentwicklung Erstellt von: Vorname Nachname tt.mm.jjjj
Nachteile von GWT JavaScript Files wachsen sehr schnell (Abhilfe mit Codesplitting) Sicherheitsproblem spärliche Dokumentation lange Compile-Zeiten nur für Java-Entwickler geeignet GWT-Klassen selbst sind nicht OpenSource Google behält sich vor die OpenSource von GWT aufzuheben Integration in bestehende Infrastruktur aufwendig Für Ausführung ist Installation von Browser-Plugin notwendig Erstellt von: Vorname Nachname tt.mm.jjjj
Quellen http://de.slideshare.net/Cenarion_Inf_Sys/gwt-google-web-toolkit-in-der-praxis-2012-1114#btnNext http://de.slideshare.net/d0nut/google-web-toolkit-207732#btnNext https://www.matse.rz.rwth-aachen.de/dienste/public/show_document.php?id=8098 www.vogella.com/articles/GWT/article.html Erstellt von: Vorname Nachname tt.mm.jjjj