52
Google Webtool Kit Übersicht

GWT

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: GWT

Google Webtool Kit

Übersicht

Page 2: GWT

Was ist GWT?

GWT ist ein Framework für AJAX-Anwendungen, welches den Entwickler in die Lage versetzt, Rich Internet Applications in Java zu entwickeln.

Der GWT-Compiler generiert aus dem Java Code den spezifischen HTML- und JavaScript Code für die jeweiligen Browser.

Page 3: GWT

Warum AJAX?

Page 4: GWT

Warum AJAX?

Page 5: GWT

Finde den Fehler

Page 6: GWT

Fehler gefunden

Page 7: GWT

JavaScript = Schmerz

...cross-browser

...memory leak

...loading latency

...bugs (dynamic language)

...security

Page 8: GWT

Von Java zu JavaScript

Page 9: GWT

Von Java zu JavaScript

Java Code:

GWT compiler (-style PRETTY)

GWT compiler (-style OBFUSCATED)

Page 10: GWT

Features

User Interfaces

History Management

Lokalisierung

Client/Server-Kommunikation

JavaScript Native Interface

Unit Testing

Optimization

Page 11: GWT

User Interfaces

GWTGWT Incubator

_________________________________

SmartGWTGWT-ExtExt-GWT

und viele mehr...

Page 12: GWT

Aufbau UI mit Code

Page 13: GWT

Aufbau UI mit UIBinder

Page 14: GWT

Styling mit CSS

Page 15: GWT

Styling mit CSS

Page 16: GWT

History Management

AJAX-Anwendungen verwenden meistens keineBrowser History (==> Frust).

Demo

Page 17: GWT

Lokalisierung

Constants    helloWorld = Hallo, Welt

Messages    goodBye = Adios, {0}

Plural    @DefaultText(...)    @PluralText(...)

UIBinder Support    <ui:msg description="helloWorld">Hello, world.</ui:msg></div>

Demo

Page 18: GWT

Client/Server Kommunikation

Page 19: GWT

HTTP-Requests

z.B.: PHP als Backend und XML, JSON oder ein eigenes Format.

Page 20: GWT

GWT-RPCWarum nicht eine Sprache sprechen?

Page 21: GWT

JavaScript Native Interface

Java Methode direkt in JavaScript implementieren.

Auf Java Members/Methoden zugreifen.

Parameter zwischen Java und JavaScript übergeben.

--> Einbindung von (bestehenden) JavaScript Libs

Page 22: GWT

Unit Testing

GWTTestCase für die Views

JUnit für Presenter und Model

Selenium

Page 23: GWT

Optimierung

Delayed Logic

Code Splitting

ClientBundle

Page 24: GWT

Tools

Eclipse Plugin

GWT Designer

Speed Tracer

Page 25: GWT
Page 26: GWT

GWT Designer

Page 27: GWT
Page 28: GWT
Page 29: GWT

Warum mit Java entwickeln?

Page 30: GWT

Vorteile

Client und Server können eine Sprache verwenden(GWTRPC).

Java Entwickler Tools (Eclipse, PMD, JUnit etc).

Debugging Umgebung

Cross-Browser-Support

Page 31: GWT

Nachteile

Google behält sich vor die Lizenzbestimmungen des GWT-Compilers zu ändern.

Widgets teilweise sehr groß(bis zu 55k pro Widget).

Es wird nur ein Teil der Java APIemuliert.

Page 32: GWT

Größe der Komponenten

Page 33: GWT
Page 34: GWT

Fragen ?

Page 35: GWT

Google App EngineWeb Application Hosting Service

Page 36: GWT

Google Infrastrukturautomatische und beliebige Skalierung von WebApps

Page 37: GWT
Page 38: GWT

Development Tools

• Java SDKo Servlet Container

• Python SDKo CGI Runtime Environment

• Google Eclipse Plugino One-Click-Deploymento Simulation aller Services in lokaler Sandboxo Leistungsfähiger Debugger

Page 39: GWT
Page 40: GWT

Google Datastore

• Bigtable (Object Database)• Google Earth, Google Finance, Google Search

Page 41: GWT

Keine relationale Datenbank

Umdenken notwendig

Page 42: GWT
Page 43: GWT

Queries

• OOP / Sql-like Syntax

• Schnelle Zugriffe bei Selects auf den KEY• Automatische Index-Erzeugung

o XML basierte Konfigurationo Google weiß im Voraus welche Queries angefragt werden

könneno Beim Schreiben werden Indexe automatisch aktualisiert

Page 44: GWT

Bulk-Loader• Python-Script• Upload / Downloading Data• Backups

Page 45: GWT

Einschränkungen• Indexerzeugung beim deployen kostet Zeit • Kein bulk-delete oder Massen-lesen / -schreiben

Page 46: GWT

Standards: JDO / JPA / Annotations

Page 47: GWT

Standards: JDO / JPA / Annotations

Page 48: GWT

Kosten

Page 49: GWT

• automatische Skalierung • Konzentration auf Gamelogik• kürzere Entwicklungszeiten• kein administrativer Overhead• keine Betriebskosten solange App kein Erfolg• IDE (Build, Deploy, Sandbox integriert)• perfektes Zusammenspiel mit GWT

Page 50: GWT

• Keine long running background processes• Kein Streaming• Kein FTP, Sockets ...• Datastore: Keine Volltext-Suche• max. 30 sec/req• max 10 MB/req• max. 3.000 Dateien (Workaroudns ZIP, JAR)• hohe Abhänigkeit von Google-Services

Page 51: GWT

Fragen ?

Page 52: GWT

Deferred Binding