GWT Präsentation - "Das Google Web Toolkit"

    GWT Präsentation - "Das Google Web Toolkit"

    [slideshare]http://www.slideshare.net/d0nut/google-web-toolkit-207732/[/slideshare]
    Java, Java, Java!
    • Programmieren in Java
    • Ausführen in Java
    • Testen in Java
    • Debuggen in Java
    • Verteilen in JavaScript
    Inhaltsverzeichnis
    1. Der GWT Weg
    2. Tools
      1. Compiler, Hosted Browser, Framework
    3. Vorteile des Paradigmas
    4. Features + Demo + Coding
    5. Fragen
    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
    • 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
    Der Compiler
    • 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
    Hosted Mode
    • Refresh synchronisiert mit Java-Code
    • Emuliert einen Browser
    • Oberfläche zum Exportieren in "Web Mode"
    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
    Vorteile des Paradigmas
    • 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
    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
    Gestaltungs- und Bedienelemente
    • 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
    Realisierbare Usability
    • Einfache Implementierung von Browserhistory ... und Bookmarkfunktionalität
    Remote Procedure Calls
    • MailService (Interface)
      • Beschreibt das tatsächliche Aussehen
      • Wird vom Backend implementiert
    • MailServiceAsync (Interface)
      • AJAX Implementierung (typisch void)
      • Wird vom Frontend implementiert
    • emailService Proxy
    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
    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
    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

    Downloads