[slideshare]http://www.slideshare.net/d0nut/google-web-toolkit-207732/[/slideshare]
Java, Java, Java!
Downloads
Java, Java, Java!
- Programmieren in Java
- Ausführen in Java
- Testen in Java
- Debuggen in Java
- Verteilen in JavaScript
- Der GWT Weg
- Tools
- Compiler, Hosted Browser, Framework
- Vorteile des Paradigmas
- Features + Demo + Coding
- Fragen
- 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
- 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
- Anwendung muss neu erstellt werden
- Code Compiler
- erstellt eine statische HTML Datei als Container
- pro Browser/Sprachkombination ein JavaScript
- Bild Compiler
- herkömmlich führt jedes Bild zu einer HTTP Abfrage
- Lösung: mehrere Bilder werden zu einem ImageBundle
- gleiche Dateigröße und dabei weniger HTTP Requests
- ImageBundles werden als Interfaces geschrieben
- Will man Bilder nicht zentral verwalten, fasst man sie durch "ableiten" zusammen
- Refresh synchronisiert mit Java-Code
- Emuliert einen Browser
- Oberfläche zum Exportieren in "Web Mode"
- 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
- GWT ändert das Paradigma. Erstmals Typisierung und Möglichkeiten zum Debuggen + Refactoren
- 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
- Bessere HTTP-Performance durch Verwendung von ImageBundles und smarter Dateien
- Programmiersprache für zeitgerechtes Programmieren
- Gestaltungs- und Bedienelemente
- Realisierbare Usability
- AJAX durch Remote Procedure Calls
- Internationalisierung
- Testing und Benchmarking
- Panel für Widgets oder weitere Panels
- ähnlich AWT/Swing Konzept in Java
- Widgets für Benutzerinteraktionen
- Normale Formular-Elemente
- Button, RadioButton, CheckBox, TextBox, PasswordTextBox, TextArea, ListBox
- Formularfreie Interaktionselemente
- Hyperlink, HTML
- Weitere Elemente aus Desktopwelt
- Einfache Implementierung von Browserhistory ... und Bookmarkfunktionalität
- MailService (Interface)
- Beschreibt das tatsächliche Aussehen
- Wird vom Backend implementiert
- Beschreibt das tatsächliche Aussehen
- MailServiceAsync (Interface)
- AJAX Implementierung (typisch void)
- Wird vom Frontend implementiert
- emailService Proxy
- 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
- 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
- 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
Downloads