Seite 1 GWT - GOOGLE WEB TOOLKIT Manuela Hofer Lucia Fiedler Erstellt von: Manuela Hofer, Lucia...

18
Seite 1 GWT - GOOGLE WEB TOOLKIT Manuela Hofer Lucia Fiedler Erstellt von: Manuela Hofer, Lucia Fiedler

Transcript of Seite 1 GWT - GOOGLE WEB TOOLKIT Manuela Hofer Lucia Fiedler Erstellt von: Manuela Hofer, Lucia...

Seite 1

GWT - GOOGLE WEB TOOLKITManuela HoferLucia Fiedler

Erstellt von: Manuela Hofer, Lucia Fiedler

Seite 2

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

Seite 3Erstellt 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

Seite 4

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

Seite 5

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

Seite 6

Hosted- Modus

> Zum entwickeln und testen

> Java-Bytecode

> Browser-Plugin notwendig

> Warnungen werden in einem

Steurerfenster ausgegeben

> Langsamere Ausführung

Web-Modus

> Für Endprodukt

> Javascript-Dateien> Beim Client kein Browser-

Plugin notwendig

> Finale Darstellung> Schnellere

Ausführungsgeschwindigkeit

Erstellt von: Vorname Nachname tt.mm.jjjj

Seite 7

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

Seite 8

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

Seite 9

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

Seite 10Erstellt von: Vorname Nachname tt.mm.jjjj

Module-Descriptor undEntryPoint-Klasse

Seite 11

Web.xml

Erstellt von: Vorname Nachname tt.mm.jjjj

Seite 12

Host-Page

Erstellt von: Vorname Nachname tt.mm.jjjj

Seite 13

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

Seite 14

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

Seite 15Erstellt 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

Seite 16

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

Seite 17Erstellt 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

Seite 18Erstellt 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