Gwt Techtalk Präsentation

2,742 views

Published on

Published in: Technology, Education
  • Be the first to comment

Gwt Techtalk Präsentation

  1. 1. TechTalk - Google Web Toolkit Von Malte Legenhausen
  2. 2. Gliederung <ul><li>Was ist das Google Web Toolkit </li></ul><ul><li>Features </li></ul><ul><li>Architektur </li></ul><ul><li>Hallo, AJAX vs. Hallo, Swing </li></ul><ul><li>Backend </li></ul><ul><li>Remote Procedure Calls </li></ul><ul><li>Debugging und Deploying </li></ul><ul><li>Performance </li></ul><ul><li>Erweiterungen </li></ul><ul><li>Alternativen </li></ul><ul><li>Zukunft </li></ul><ul><li>Fazit </li></ul>
  3. 3. Was ist das Google Web Toolkit <ul><li>Programmierung von AJAX Applikationen in Java 1.4 Syntax </li></ul><ul><li>Java-to-JavaScript Compiler </li></ul><ul><li>Vereinfachung von RPC Anfragen </li></ul><ul><li>Widget Klassenbibliothek in Anlehnung an Swing </li></ul><ul><li>Open Source </li></ul>
  4. 4. Features <ul><li>Dynamische und wieder verwendbare UI-Komponenten </li></ul><ul><li>Einfache Programmierung von Remote Procedure Calls (RPC) </li></ul><ul><li>Browser History Management </li></ul><ul><li>Debugging in Java </li></ul><ul><li>Browser Kompatibilität </li></ul><ul><li>JUnit Integration </li></ul><ul><li>Internationalisierung </li></ul><ul><li>JavaScript Native Interface (JSNI) </li></ul><ul><li>Google API Library (Google Gears) </li></ul>
  5. 5. Architektur
  6. 6. Hallo, AJAX vs. Hallo, Swing public class MyApplication implements EntryPoint {    public void onModuleLoad() {      Button b = new Button (&quot;Click me&quot; , new ClickListener() {        public void onClick(Widget sender) {          Window.alert( &quot;Hello, AJAX&quot; );        }      });      RootPanel.get().add(b);    } } public class MyApplication { public static void main(String[] args) { final JFrame frame = new JFrame( &quot;Hallo, Swing&quot; ); JButton b = new JButton( &quot;Click me&quot; ); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane. showMessageDialog (frame, &quot;Hallo, Swing&quot; ); } }); frame.getContentPane().add(b); frame.setSize(200, 100); frame.setVisible( true ); } }
  7. 7. Backend <ul><li>Eingebauter Tomcat Entwicklungsserver </li></ul><ul><li>GWT ist Backend unabhängig </li></ul><ul><ul><li>Jede Programmiersprache möglich </li></ul></ul><ul><ul><li>Keine standardmäßige Unterstützung </li></ul></ul><ul><li>Jede serverseitige Technologie einbindbar </li></ul><ul><ul><li>Datenbanken </li></ul></ul><ul><ul><li>JFreeChart </li></ul></ul>
  8. 8. Remote Procedure Calls
  9. 9. Debugging und Deploying <ul><li>hosted mode </li></ul><ul><ul><li>Codeausführung in einer JVM als Java Bytecode </li></ul></ul><ul><ul><li>Debugging in Java </li></ul></ul><ul><ul><li>Verwendung von weitverbreiteten IDE </li></ul></ul><ul><ul><ul><li>Eclipse (GWT Designer) </li></ul></ul></ul><ul><ul><ul><li>NetBeans </li></ul></ul></ul><ul><li>web mode </li></ul><ul><ul><li>Übersetzung von Java zu JavaScript </li></ul></ul><ul><ul><li>Reine Verwendung von JavaScript und HTML </li></ul></ul><ul><ul><li>Keine JVM mehr notwendig </li></ul></ul>
  10. 10. Performance <ul><li>JavaScript ist langsam! </li></ul><ul><ul><li>700 mal langsamer als nativer Code </li></ul></ul><ul><li>Compileroptimierungen </li></ul><ul><ul><li>Codeaussortierung </li></ul></ul><ul><ul><li>Performanter JavaScriptcode </li></ul></ul><ul><ul><li>Browserkompatibilität </li></ul></ul>
  11. 11. Erweiterungen <ul><li>Google Maps </li></ul><ul><li>Google Widgets </li></ul><ul><li>gwt-dnd </li></ul><ul><ul><li>Drag and Drop Erweiterung </li></ul></ul><ul><li>gwt-ext </li></ul><ul><ul><li>GWT Schnittstelle zur ext-js Bibliothek </li></ul></ul><ul><li>Rocket-GWT </li></ul><ul><ul><li>Erweiterte Widgets </li></ul></ul><ul><ul><li>Logging-Mechanismen </li></ul></ul><ul><li>Rialto GWT </li></ul><ul><ul><li>GWT Schnittstelle zur Rialto JavaScript Bibliothek </li></ul></ul>
  12. 12. Alternativen <ul><li>Thinwire </li></ul><ul><li>Echo2 </li></ul><ul><li>Eclipse RAP </li></ul><ul><li>ZK </li></ul><ul><li>Seam </li></ul><ul><li>Wicket </li></ul><ul><li>Click </li></ul><ul><li>Adobe Flex </li></ul><ul><li>pyjamas </li></ul>
  13. 13. Zukunft <ul><li>Drag and Drop </li></ul><ul><li>Java 5 Syntax </li></ul><ul><li>Lazy Loading </li></ul><ul><li>Einfacherer Zugriff auf nicht Java Backends </li></ul><ul><li>Support von canvas, SVG, VML </li></ul><ul><li>Animationen und Effekte </li></ul>
  14. 14. Fazit <ul><li>Zukunftsweisende Technologie </li></ul><ul><li>Abstraktion auf eine höhere Sprache </li></ul><ul><ul><li>Programmieren ohne Hintergedanken </li></ul></ul><ul><ul><li>Compiler kümmert sich um die Optimierung </li></ul></ul><ul><li>Kein Unterschied zwischen Desktop- und Webapplikation </li></ul><ul><li>JavaScript ohne GWT kann nur langsamer sein </li></ul>
  15. 15. Vielen Dank

×