31
GWT Google Web Toolkit   Referent: Torben Brodt   Veranstaltung: Fachseminar Webframeworks   Datum: 20.12.2007

Google Web Toolkit

Embed Size (px)

DESCRIPTION

30 minütige Präsentation des Google Web Toolkit, einem Java Framework zum erstennellen von Javafreien-Web-Applikationen. Den Download des Beispielprogramms finden Sie auf http://www.easy-coding.de/trac/gwt .

Citation preview

Page 1: Google Web Toolkit

GWTGoogle Web Toolkit

  Referent:  Torben Brodt  Veranstaltung: Fachseminar Webframeworks  Datum: 20.12.2007

Page 2: Google Web Toolkit

   

Hello World!

Das klassische Codebeispiel

Page 3: Google Web Toolkit

   

Java, Java, Java!

Programmieren in Java Ausführen in Java Testen in Java Debuggen in Java Verteilen in JavaScript !

Page 4: Google Web Toolkit

   

Inhaltsverzeichnis

 1. Der GWT Weg

 2. Tools● Compiler, Hosted Browser, Framework

 3. Vorteile des Paradigmas

 4. Features + Demo + Coding

 5. Fragen

Page 5: Google Web Toolkit

   

Der GWT Weg

System­Sprache statt Auszeichnungssprache GWT­ statt Swing­Klassen, aber Handling gleich Der Code bleibt für Browser und Menschen lesbar Programmiert wird in Systemsprache, wegen...

der riesigen Toolunterstützung der Java Spracheigenschaften Übersichtlichkeit trotz komplexer Systeme

Page 6: Google Web Toolkit

   

Der GWT Weg

Ergebnis = kein Java, kein Applet, keine VM einzige Voraussetzung: Browser anderer Weg für selbes Ergebnis

JavaScript und Java sind zwar syntaktisch ähnlich, aber bei dem Konzept hätte Google jede andere Sprache wählen können (siehe Projekt: pyjamas)

Ähnlich Swing, aber kein SWING Anwendung muss neu erstellt werden

Page 7: Google Web Toolkit

   

Der Compiler

Code Compiler erstellt eine statische HTML Datei als Container pro Browser/Sprachkombination ein JavaScript

nur verwendete Frameworkteile werden mitgeliefert

compilieren

Page 8: Google Web Toolkit

   

Der Compiler

Bild Compiler – die Problemstellung herkömmlich führt jedes Bild zu einer HTTP 

Abfrage

200 OK

GET dateiname.png

Page 9: Google Web Toolkit

   

Der Compiler

Bild Compiler – die Lösung mehrere Bilder werden zu einem ImageBundle gleiche Dateigröße und dabei weniger HTTP 

RequestsGET dateiname.png

Page 10: Google Web Toolkit

   

Der Compiler

ImageBundles werden als Interfaces geschrieben Will man Bilder nicht zentral verwalten, fasst man sie 

durch ”ableiten” zusammen

Einbinden per HTML oder ImageProto

Page 11: Google Web Toolkit

   

Der Compiler

ImageBundles werden als Interfaces geschrieben Will man Bilder nicht zentral verwalten, fasst man sie 

durch ”ableiten” zusammen

Einbinden per HTML oder ImageProto

Page 12: Google Web Toolkit

   

Hosted Mode

Refresh synchronisiert mit Java­Code Emuliert einen Browser Oberfläche zum Exportieren in ”Web Mode”

Page 13: Google Web Toolkit

   

Framework

java.lang und java.util sind nachimplementiert Bedienelemente (Widgets) sind vorhanden Vorteil durch Abstraktion

Das Web ist ein schnell mutierendes Umfeld Viele Problemlösungen will man in 3 Monaten ganz 

anders machen Da man weit weg vom JavaScript Code ist, reicht 

eine aktualisierte GWT.jar

Page 14: Google Web Toolkit

   

Vorteile des Paradigmas

GWT ändert das Paradigma. Erstmals Typisierung und Möglichkeiten zum Debuggen + Refactoren

Page 15: Google Web Toolkit

   

Vorteile des Paradigmas

Beliebige Java IDE, da Einbindung per .jar GWT ist zwar allein zur Frontendprogrammierung..  

bringt aber dennoch einen Tomcat Server zur Abrundung mit Start per Button Aktualisieren durch Browser Refresh Vollständiges Debuggen möglich

Teamaufteilung ist besser möglich

Page 16: Google Web Toolkit

   

Features

1.Bessere HTTP­Performance durch Verwendung von ImageBundles und smarter Dateien

2.Programmiersprache für zeitgerechtes Programmieren

3.Gestaltungs­ und Bedienelemente

4.Realisierbare Usability

5.AJAX durch Remote Procedure Calls

6.Internationalisierung

7.Testing und Benchmarking

Page 17: Google Web Toolkit

   

Gestaltungs­ und Bedienelemente

Panel für Widgets oder weitere Panels ähnlich AWT/Swing Konzept in Java

TabPanel Horizontal­SplitPanel

Page 18: Google Web Toolkit

   

Gestaltungs­ und Bedienelemente

Widgets für Benutzerinteraktionen Normale Formular­Elemente

Button, RadioButton, CheckBox, TextBox, PasswordTextBox, TextArea, ListBox

Formularfreie Interaktionselemente Hyperlink, HTML

Weitere Elemente aus Desktopwelt

Page 19: Google Web Toolkit

   

Gestaltungs­ und Bedienelemente

Mail­Beispielclient.... erweitert :­)

Page 20: Google Web Toolkit

   

Realisierbare Usability

Einfache Implementierung von Browserhistory ... und Bookmarkfunktionalität

Page 21: Google Web Toolkit

   

Realisierbare Usability

Implementierung durch zentralen Controller, der URL Parameter durchreicht

Implementierung von HistoryListener

Page 22: Google Web Toolkit

   

Remote Procedure Calls

MailService (Interface) 

Beschreibt das tatsächliche Aussehen Wird vom Backend implementiert

Page 23: Google Web Toolkit

   

Remote Procedure Calls

MailServiceAsync (Interface) 

AJAX Implementierung (typisch void) Wird vom Frontend implementiert

Page 24: Google Web Toolkit

   

Remote Procedure Calls

emailService Proxy

Page 25: Google Web Toolkit

   

Remote Procedure Calls

Backend implementiert die Methoden von MailService komplexe Datentypen erlaubt

Frontend Backend

Page 26: Google Web Toolkit

   

Internationalisierung

Statische VS dynamische Internationalisierung Statische bevorzugt, da neben Sprache auch 

Eigenschaften (Zeit­ und Zahlenformate) einfacher umgestellt werden können

Auswahl entweder automatisch, über URL oder per Methodenaufruf

Page 27: Google Web Toolkit

   

Internationalisierung

Mail.gwt.xml um Sprachmodul erweitern

Klasse implementieren (und instanziieren)

Property­Dateien anlegen Mailboxes$Language.properties bzw ..._de.properties

Page 28: Google Web Toolkit

   

Internationalisierung

Beispiel einer Property Datei

Sprachvariablen austauschen

compose = Neusync = Verschicken/Abrufen!reply = Antworten

Page 29: Google Web Toolkit

   

Wiederverwendung

alter JavaScript Code kann wiederverwendet werden durch das Schlüsselwort native Zugriff zurück auf Java durch spezielle Syntax

Arbeit mit window und document über $wnd und $doc

Page 30: Google Web Toolkit

   

Testing & Benchmarking

JUNIT Integration in GWT über eigene Klasse asynchrones Testen von Front­ bis Backend 

durch Simulation von Verzögerung Realisierung über versteckten GWT Browser GUI­Erweiterung für Benchmarking

Page 31: Google Web Toolkit

   

Fragen

Fragen?