SlideShare a Scribd company logo
1 of 140
Google Web Toolkit
                                                                                         PGT
                                                                          T3CHNOLOGY SCOUTING




 Mit Adwords und Google Wave sind die ersten großen GWT
 basierten Anwendungen von Google erschienen. Mit einem
 optimierenden Kompiler und pfiffige Codegeneratoren werden mit
 GWT maßgeschneiderte JavaScript Anwendungen erstellt, die
 Entwicklung findet allerdings in Java statt. In dem Vortrag werden
 Konzepte, Neuigkeiten aus 2.0 und die aus Adwords gewonnenen
 Architektur Best Practices vorgestellt.

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Google Web Toolkit
                                                                                         PGT
                                                                          T3CHNOLOGY SCOUTING




                      Konzepte, Neuigkeiten aus 2.0 und die aus Adwords
                          gewonnenen Architektur “Best Practices”




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Session topics

               Webapps                           here and now

                 • The Google Web Toolkit
                 • What’s new with 2.0
                 • Architecture „best practices“

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Web 2.0?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Web 2.0 by apps?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Web 2.0 by buzzwords?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Web 2.0 by technologies?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Web 2.0 what we see
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Mashups
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
But how?!?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
copyright 2006, Leland Scott, Musings from Mars
                    Native DHTML speakers
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
HTML5                     Chrome   Firefox   Safari   Opera

                                                                            canvas
                                                                            video                                    ???




                                                                 geolocation
                                                                      appcache
                                                                          database
                                                                          workers




                   HTML 5 here and now
                                                                                             Vic Gundotra
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de                 Google IO Keynote
HTML5                     Chrome   Firefox   Safari   Opera

                            IE?                                             canvas
                                                                            video                                    ???




                                                                 geolocation
                                                                      appcache
                                                                          database
                                                                          workers




                   HTML 5 here and now
                                                                                             Vic Gundotra
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de                 Google IO Keynote
HTML5                     Chrome   Firefox   Safari   Opera

                            IE?                                             canvas
                                                                            video                                    ???

                       MS
                 announced                                       geolocation
                 full support
                                                                      appcache
                                                                          database
                                                                          workers




                   HTML 5 here and now
                                                                                             Vic Gundotra
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de                 Google IO Keynote
HTML5                     Chrome   Firefox   Safari   Opera

                            IE?                                             canvas
                                                                            video                                    ???

                       MS
                 announced                                       geolocation
                 full support
                                                                      appcache

                HTML 5 not                                                database
                 final yet!                                                workers




                   HTML 5 here and now
                                                                                             Vic Gundotra
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de                 Google IO Keynote
The Ajax
              slippery slope
           ‣ Try “a little bit of script”
           ‣ Every body loves it!
            ‣ More!!!
              ‣ Errr - Do we know
                 Javascript?
           ‣ Does it work with…
              ‣ Wait – this is hard!
pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
Fear browsers
         with all of mind,
         body and spirit
                              When in danger,
                              when in doubt,
                               run in circles
                              cry and shout




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
Browser                                                    Server


                                                                          event


                                                                                  espo  nse
                                                                     f ull html r

                                                                           event


                                                                                  sponse
                                                                    fu ll html re


                                                                           event


                                                                                   spo  nse
                                                                     fu ll html re




                  The Ajax architectural shift
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Browser                                                    Server


                                                                          event


                                                                                  espo  nse
                                                                     f ull html r

                                                                           event


                                                                                  sponse
                                                                    fu ll html re


                                                                           event


                                                                                   spo  nse
                                                                     fu ll html re




                  The Ajax architectural shift
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Browser                                               Server
                                                                           first reques
                                                                                         t


                                                                                 esp  onse
                                                                     full html r
                            event



                            event

                                                                          data reque
                                                                                    st
                            event

                                                                               data
                            event
                                                                            data reque
                                                                                      st


                                                                               data




                  The Ajax architectural shift
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
The web THEN
              and now
         Browsers where dumb html
          terminals
         High server side resource
          consumption




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
The web then
                and NOW
           Rich user interfaces in the
            Browser
           Server resource consumption
            reduced to a minimum




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
something to
                 remember
                           fixing performance
                            is fixing latency




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
Session topics

                 • Webapps here and now
               The             Google Web Toolkit

                 • What’s new with 2.0
                 • Architecture „best practices“

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Google Web Toolkit
              
 Google Web Toolkit (GWT) is an open source Java
                development framework that lets you escape the matrix
                of technologies that make writing AJAX applications so
                difficult and error prone.


              
 With GWT, you can develop and debug AJAX
                applications in the Java language using the Java
                development tools of your choice. When you deploy
                your application to production, the GWT compiler
                translates your Java application to browser-compliant
                JavaScript and HTML.


© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Google Web Toolkit
              
 Google Web Toolkit (GWT) is an open source Java
                development framework that lets you escape the matrix
                of technologies that make writing AJAX applications so
                difficult and error prone.


              
 With GWT, you can develop and debug AJAX
                applications in the Java language using the Java
                development tools of your choice. When you deploy
                your application to production, the GWT compiler
                translates your Java application to browser-compliant
                JavaScript and HTML.


© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Standalone JS apps
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
JS app can be anything
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
no eye candy (otb)
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
prototyping?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
it‘s about engineering
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
development cycle
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Checkstyle




                                          Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Checkstyle

                                                                          Findbugs,
                                                                            PMD




                                          Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Checkstyle

                                                                          Findbugs,
                                                                            PMD

                                                                           Patterns




                                          Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Checkstyle

                                                                           Findbugs,
                                                                             PMD

                                                                           Patterns

                                                                          Unit testing




                                          Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Checkstyle

                                                                           Findbugs,
                                                                             PMD

                                                                           Patterns

                                                                          Unit testing

                                                                          Refactoring!




                                          Develop in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
One click start
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Use the webapp
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Debug in Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Cross compile to JS
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Distribute
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
GWT does
            more than just
              compile.
                                    Much more.

                            The sky is the limit?




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
http://www.balsamiq.com/products/mockups/tour
                       GUI component model
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Helping where help is needed
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Performace twirks
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
!=


                     project layout vs. deployment layout
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
connection bottleneck
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
compress / obfuscate
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Sprites
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
GWT is
                       extensible
                            Module concept
                         Extensible GUI model
                           Code Generator
                                  JSNI




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
Connecting to the enterprise
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
JAX
                        honour the A in AJAX
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
AJAX stands for
                                                                              Asynchronous
                                                                           JavaScript and XML




                                                                          JAX
                        honour the A in AJAX
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
AJAX stands for
                                                                             Asynchronous
                                                                          JavaScript and XML




                                                                          JAX
                        honour the A in AJAX
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
AJAX stands for
                                                                             Asynchronous        and
                                                                          JavaScript and XML   JSON...




                                                                          JAX
                        honour the A in AJAX
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Session topics

                 • Webapps here and now
                 • The Google Web Toolkit
               What’s                     new with 2.0

                 • Architecture „best practices“

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
In browser hosted mode
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Faster compilation
                                                                                       GWT Can Do What?!?!
                                                                          A Preview of Google Web Toolkit 2.0
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Developer guided splits
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Splitting the app
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Generated deferred JS
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Client bundles
                                        Image,
                                         Text,
                                         Data,
                                         CSS

                                    Resources




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
CSS with conditionals
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
CSS with conditionals
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
CSS with conditionals
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
UI Binding
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Declarative user interfaces
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Facing the layout problem
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
-XdisableClassMetadata




                                                                                       GWT Can Do What?!?!
                                                                          A Preview of Google Web Toolkit 2.0
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
does anyone catch
                      CCE?
               void makeItQuack(Animal animal) {
               try
               {
                 ((Quacker) animal).quack();
               }
               catch (ClassCastException c)
               {
                 Window.alert("This doesn't quack."); }
               }

                                                                                       GWT Can Do What?!?!
                                                                          A Preview of Google Web Toolkit 2.0
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
-XdisableCastChecking

             dynamicCast(animal, 2).quack();




             animal.quack();


© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
-XdisableCastChecking

             dynamicCast(animal, 2).quack();




             animal.quack();
                                                                          1% script size reduction

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
-XdisableCastChecking

             dynamicCast(animal, 2).quack();


                                                                             10% speed improvement in
                                                                             performance-sensitive code
             animal.quack();
                                                                          1% script size reduction

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Recap GWT 2.0
                  Feature                                    for developers                                for users
              In-browser hosted mode                                debug in real brwosers


                  Faster compilation                                  less thumb-twiddling

          script size reductions and speed
                                                             simple flag enable size/ speed gains        apps start faster, run faster
                    improvements

                                                           low-risk, easy way to spread download
                     code splitting                                                                  apps start faster, stay interactive
                                                                            time

                      client bundle                              project orga != deploy orga              fewer http roundtrips


               layout you can count on                         less time fighting css and layout     faster, smoother layout and resizing



                                                                                            GWT Can Do What?!?!
                                                                               A Preview of Google Web Toolkit 2.0
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Session topics

                 • Webapps here and now
                 • The Google Web Toolkit
                 • What’s new with 2.0
               Architecture                                 „best practices“




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Ray Ryan - lessons learned
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#1




                                                                          http://blogdoxoto.blogspot.com/2008/11/voc-reclama-do-onibus-lotado.html
                                                           eventbus
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#2



                                   command pattern
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#3



                        Model View Presenter
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#4



                get browser history right
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#5



                        Dependency Injection
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
it’s all about
                   de-coupling
                             GWT brings
                         software engineering
                          to web application
                             development




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
#1



                                            use eventbus...
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
...to fight spaghetti
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call you




                                                                          EventBus
                             Master view


                                             Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call you




                                                                                                EventBus
                                                                          fire selection event
                             Master view


                                             Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call you




                                                                                                            EventBus
                                                                          fire selection event
                             Master view


                                                                                  receive selection event
                                             Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call
             you, and you too




                                                                          EventBus
                    Master view


                                           Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call
             you, and you too

                     Bread crumb View




                                                                          EventBus
                    Master view


                                           Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call
             you, and you too

                     Bread crumb View




                                                                                                EventBus
                                                                          fire selection event
                    Master view


                                           Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call
             you, and you too

                                                                                     receive selection event
                     Bread crumb View




                                                                                                               EventBus
                                                                          fire selection event
                    Master view

                                                                                 receive selection event
                                           Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
don’t call me, I’ll call
             you, and you too

                                                                                     receive selection event
                     Bread crumb View




                                                                                                               EventBus
                                                                          fire selection event
                    Master view

                                                                                 receive selection event
                                           Detail view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
unreal de-coupling?




                                                                          EventBus
      Master view



                         Detail view



                                                                          RPC
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
unreal de-coupling?




                                                                                             EventBus
      Master view


                                                                                       ent
                                                                          (1) change ev
                         Detail view



                                                                                             RPC
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
unreal de-coupling?




                                                                                                         EventBus
      Master view


                                                                                       ent
                                                                          (1) change ev
                         Detail view
                                                                                             (2) store
                                                                                               data


                                                                                                         RPC
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
unreal de-coupling?




                                                                                                         EventBus
      Master view


                                                                                       ent
                                                                          (1) change ev
                         Detail view
                                                                                             (2) store              (3) updated
                                                                                               data                     data


                                                                                                         RPC
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
unreal de-coupling?

                                                     (4) updated data




                                                                                                            EventBus
      Master view

                                                                                           ta
                                                                           (4) u pdated da

                                                                                       ent
                                                                          (1) change ev
                         Detail view
                                                                                                (2) store              (3) updated
                                                                                                  data                     data


                                                                                                            RPC
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Use GWT native events




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#2



                                   command pattern
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
command
                         pattern
                                 GOF Pattern

                            commonly used in
                              Rich Clients




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
server communication
         command pattern

                                                                  dispatch
                                                                  service    XHandler
     XAction
                                                                             YHandler
         XResult
                                                                             ZHandler




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
boundaries

                                                                  dispatch
                                                                  service                 XHandler
     XAction
                                                                                          YHandler
         XResult
                                                                                          ZHandler



Browser / JS                                   GWT RPC                       Servlet / Java
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
handler registry
                                  dispatch
                                  service
    XAction                                                                        XHandler
    XResult

                                                                                   YHandler

                                                                                   ZHandler

                                                                           by hand, Spring,
                                                                          Guice, you name it

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
connecting
                        to the backend
                                  dispatch
                                  service
    XAction
                                                                              XHandler
    XResult


                                                                               Service               Spring
                                                                                                    Backend
                                                                          DAO A          DAO B



                                                                          by Hand, Spring, Guice,
                                                                               you name it
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
leverage
                          point for
                              caching
                              batching
                         exception handling
                      securing communication




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
#3



                        Model View Presenter
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Controller

                                View
                                                             Da
                                                               tab
                                                                     ind
                                                                          ing
                                                                                Model




                         Controller

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Controller

                                View
                                                             Da
                                                               tab
                                                                     ind
                                                                          ing
                                                                                Model




                         Controller

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Presenter
                                                            Model


                                                        Presenter




                                                              View

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Presenter
                                                            Model


                                                        Presenter




                                                              View

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Presenter
                                                            Model


                                                        Presenter




                                                              View        Mock view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Presenter
                                                            Model


                                                        Presenter




                                                              View        Mock view

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
M - V - Presenter
                                                            Model


                                                        Presenter




                                                      Mock view           View

© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Use interfaces




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#4



                get browser history right
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
history
                 management
                                 from day one

         back button and refresh as a feature
                 (not a catastrophe)

                       use “place” abstraction




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
take the bus

                                                                  Place
                                                                  View




                                                                          EventBus
                      PlaceManager
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
take the bus

                                                                  Place
                                                                  View




                                                                          EventBus
                         (1) receive browser
                            history events




                      PlaceManager
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
take the bus

                                                                  Place
                                                                  View




                                                                                                EventBus
                         (1) receive browser
                            history events


                                                                          (2) fire place event
                      PlaceManager
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
take the bus

                                                                             (3) receive place event
                                                                  Place
                                                                  View




                                                                                                       EventBus
                         (1) receive browser
                            history events


                                                                          (2) fire place event
                      PlaceManager
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
#5



                        Dependency Injection
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
convention
                         +
                      runtime
                               no globals
                          no service locator
                         push in dependencies

                              runtime wires
                            instances together




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
common DI
                    containers
                                use reflection.

                          reflection does not
                            work with GWT




                                                          (c) Rakesh Ashok
pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
deferred
                            binding
                            GWT offers
                          similar approach
                     through code generators
                        and implementation
                            replacement

                  “reflection at compile time”



pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
GIN




© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
following Ray
                 Ryans path
                      COMMAND PATTERN
                         gwt-dispatch
                       EVENTBUS + PLACE
                      MANAGEMENT + MVP
                          gwt-presenter
                 DEPENDENCY INJECTION
                         gin



pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
Thanks!
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Papick G.
                         Taboada
                 Dipl. W-Ing (TH)
                               projects,
                                training,
                               coaching,
                          technology scouting




pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
PGT
                                                                          T3CHNOLOGY SCOUTING




                                       http://pgt.de
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Time for Questions?
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
meet outside
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Credits
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
5946730                                            7808697   5946730




                       5457175                                            7937833   2959336




                      http://istockphoto.com
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
234813_R_K                                             251666_R_K          288060_R_B
                    Robert Babiak                                             Klausi         Gabi Schoenemann




                      403531_R                                              380693_R_K        407554_R_K_B
                     Egon Häbich                                           Matthias Balzer     Rainer Sturm




                   418630_R_K_B                                            423871_R_B          424200_R_K
                    Rainer Sturm                                          Hartmut Giessler       Sunny33




                                         http://pixelio.de
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
294663_R_K_B                                            320285_R_K     342469_R
               Stephanie Hofschlaeger                                        Jeger     Andreas Morlok




                     412134_R_K                                            413461_R     414495_R_B
                    Tim Reckmann                                            BirgitH     Rainer Sturm




                     424566_R_K                                            426440_R      427926_R
                   Susanne Schmich                                           Joujou       Schubalu




                                         http://pixelio.de
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
367537_R_K_B                                           416617_R_K_B    428983_R_K_B
                  Thomas Anderson                                          Rainer Sturm    Rainer Sturm




                                         http://pixelio.de
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
Rakesh Ashok

                                                                  http://www.flickr.com/photos/rakeshashok/3198323549
                                                                 http://creativecommons.org/licenses/by-nc-nd/2.0/deed.de




                                                                            Stadtmarketing Karlsruhe GmbH
                                                               http://www.karlsruhe.de/stadt/stadtmarketing/presse/fotos.de




                                                http://msande277.wordpress.com/2009/05/25/the-segway-its-a-engineering-class-project/
                                                                 http://www.the-uno-tomorrows-transportation.com




                                                               Others
© 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de

More Related Content

Viewers also liked

GWT Training - Session 2/3
GWT Training - Session 2/3GWT Training - Session 2/3
GWT Training - Session 2/3Faiz Bashir
 
GWT Overview And Feature Preview - SV Web JUG - June 16 2009
GWT Overview And Feature Preview - SV Web JUG -  June 16 2009GWT Overview And Feature Preview - SV Web JUG -  June 16 2009
GWT Overview And Feature Preview - SV Web JUG - June 16 2009Fred Sauer
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
GWT architecture best practices and lessons learned
GWT architecture best practices and lessons learnedGWT architecture best practices and lessons learned
GWT architecture best practices and lessons learnedpgt technology scouting GmbH
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3Faiz Bashir
 

Viewers also liked (6)

GWT Training - Session 2/3
GWT Training - Session 2/3GWT Training - Session 2/3
GWT Training - Session 2/3
 
GWT Overview And Feature Preview - SV Web JUG - June 16 2009
GWT Overview And Feature Preview - SV Web JUG -  June 16 2009GWT Overview And Feature Preview - SV Web JUG -  June 16 2009
GWT Overview And Feature Preview - SV Web JUG - June 16 2009
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
GWT architecture best practices and lessons learned
GWT architecture best practices and lessons learnedGWT architecture best practices and lessons learned
GWT architecture best practices and lessons learned
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
 
GWT widget development
GWT widget developmentGWT widget development
GWT widget development
 

Similar to Google Web Toolkit

2011 Mobile & Web technologies
2011 Mobile & Web technologies 2011 Mobile & Web technologies
2011 Mobile & Web technologies JungHyuk Kwon
 
Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2JooinK
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.JooinK
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWTFrancesca Tosi
 
My freelance experience
My freelance experienceMy freelance experience
My freelance experiencetraditio
 
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...OSCON Byrum
 
Optimizing Authentic Cloud Based Collaborations v5
Optimizing Authentic Cloud Based Collaborations v5Optimizing Authentic Cloud Based Collaborations v5
Optimizing Authentic Cloud Based Collaborations v5Roxann D. Riskin
 
HTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVUHTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVUChad Austin
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & KubernetesGlobant
 
OSGeo: projects, incubation and infrastructure
OSGeo: projects, incubation and infrastructureOSGeo: projects, incubation and infrastructure
OSGeo: projects, incubation and infrastructureMarkus Neteler
 
Deploy a php app on Google App Engine
Deploy a php app on Google App EngineDeploy a php app on Google App Engine
Deploy a php app on Google App EngineMichele Orselli
 
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBuilding Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBizTalk360
 
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Sri Ambati
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackwesley chun
 

Similar to Google Web Toolkit (20)

2011 Mobile & Web technologies
2011 Mobile & Web technologies 2011 Mobile & Web technologies
2011 Mobile & Web technologies
 
Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2
 
GWT - building a better web
GWT - building a better web GWT - building a better web
GWT - building a better web
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
My freelance experience
My freelance experienceMy freelance experience
My freelance experience
 
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
 
Optimizing Authentic Cloud Based Collaborations v5
Optimizing Authentic Cloud Based Collaborations v5Optimizing Authentic Cloud Based Collaborations v5
Optimizing Authentic Cloud Based Collaborations v5
 
HTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVUHTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVU
 
Html ppts
Html pptsHtml ppts
Html ppts
 
HTML
HTMLHTML
HTML
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & Kubernetes
 
OSGeo: projects, incubation and infrastructure
OSGeo: projects, incubation and infrastructureOSGeo: projects, incubation and infrastructure
OSGeo: projects, incubation and infrastructure
 
Deploy a php app on Google App Engine
Deploy a php app on Google App EngineDeploy a php app on Google App Engine
Deploy a php app on Google App Engine
 
Phonegap
PhonegapPhonegap
Phonegap
 
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBuilding Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
 
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
 
Agate Technocom
Agate TechnocomAgate Technocom
Agate Technocom
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
HTML5
HTML5HTML5
HTML5
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Google Web Toolkit

  • 1. Google Web Toolkit PGT T3CHNOLOGY SCOUTING Mit Adwords und Google Wave sind die ersten großen GWT basierten Anwendungen von Google erschienen. Mit einem optimierenden Kompiler und pfiffige Codegeneratoren werden mit GWT maßgeschneiderte JavaScript Anwendungen erstellt, die Entwicklung findet allerdings in Java statt. In dem Vortrag werden Konzepte, Neuigkeiten aus 2.0 und die aus Adwords gewonnenen Architektur Best Practices vorgestellt. © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 2. Google Web Toolkit PGT T3CHNOLOGY SCOUTING Konzepte, Neuigkeiten aus 2.0 und die aus Adwords gewonnenen Architektur “Best Practices” © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 3. Session topics  Webapps here and now • The Google Web Toolkit • What’s new with 2.0 • Architecture „best practices“ © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 4. Web 2.0? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 5. Web 2.0 by apps? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 6. Web 2.0 by buzzwords? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 7. Web 2.0 by technologies? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 8. Web 2.0 what we see © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 9. Mashups © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 10. But how?!? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 11. copyright 2006, Leland Scott, Musings from Mars Native DHTML speakers © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 12. HTML5 Chrome Firefox Safari Opera canvas video ??? geolocation appcache database workers HTML 5 here and now Vic Gundotra © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de Google IO Keynote
  • 13. HTML5 Chrome Firefox Safari Opera IE? canvas video ??? geolocation appcache database workers HTML 5 here and now Vic Gundotra © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de Google IO Keynote
  • 14. HTML5 Chrome Firefox Safari Opera IE? canvas video ??? MS announced geolocation full support appcache database workers HTML 5 here and now Vic Gundotra © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de Google IO Keynote
  • 15. HTML5 Chrome Firefox Safari Opera IE? canvas video ??? MS announced geolocation full support appcache HTML 5 not database final yet! workers HTML 5 here and now Vic Gundotra © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de Google IO Keynote
  • 16. The Ajax slippery slope ‣ Try “a little bit of script” ‣ Every body loves it! ‣ More!!! ‣ Errr - Do we know Javascript? ‣ Does it work with… ‣ Wait – this is hard! pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 17. Fear browsers with all of mind, body and spirit When in danger, when in doubt, run in circles cry and shout pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 18. Browser Server event espo nse f ull html r event sponse fu ll html re event spo nse fu ll html re The Ajax architectural shift © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 19. Browser Server event espo nse f ull html r event sponse fu ll html re event spo nse fu ll html re The Ajax architectural shift © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 20. Browser Server first reques t esp onse full html r event event data reque st event data event data reque st data The Ajax architectural shift © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 21. The web THEN and now  Browsers where dumb html terminals  High server side resource consumption pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 22. The web then and NOW  Rich user interfaces in the Browser  Server resource consumption reduced to a minimum pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 23. something to remember fixing performance is fixing latency pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 24. Session topics • Webapps here and now  The Google Web Toolkit • What’s new with 2.0 • Architecture „best practices“ © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 25. Google Web Toolkit Google Web Toolkit (GWT) is an open source Java development framework that lets you escape the matrix of technologies that make writing AJAX applications so difficult and error prone. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML. © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 26. Google Web Toolkit Google Web Toolkit (GWT) is an open source Java development framework that lets you escape the matrix of technologies that make writing AJAX applications so difficult and error prone. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML. © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 27. Standalone JS apps © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 28. JS app can be anything © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 29. no eye candy (otb) © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 30. prototyping? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 31. it‘s about engineering © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 32. development cycle © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 33. Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 34. Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 35. Checkstyle Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 36. Checkstyle Findbugs, PMD Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 37. Checkstyle Findbugs, PMD Patterns Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 38. Checkstyle Findbugs, PMD Patterns Unit testing Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 39. Checkstyle Findbugs, PMD Patterns Unit testing Refactoring! Develop in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 40. One click start © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 41. Use the webapp © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 42. Debug in Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 43. Cross compile to JS © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 44. Distribute © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 45. GWT does more than just compile.  Much more.  The sky is the limit? pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 46. http://www.balsamiq.com/products/mockups/tour GUI component model © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 47. Helping where help is needed © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 48. Performace twirks © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 49. != project layout vs. deployment layout © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 50. connection bottleneck © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 51. compress / obfuscate © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 52. Sprites © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 53. GWT is extensible  Module concept  Extensible GUI model  Code Generator  JSNI pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 54. Connecting to the enterprise © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 55. JAX honour the A in AJAX © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 56. AJAX stands for Asynchronous JavaScript and XML JAX honour the A in AJAX © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 57. AJAX stands for Asynchronous JavaScript and XML JAX honour the A in AJAX © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 58. AJAX stands for Asynchronous and JavaScript and XML JSON... JAX honour the A in AJAX © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 59. Session topics • Webapps here and now • The Google Web Toolkit  What’s new with 2.0 • Architecture „best practices“ © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 60. In browser hosted mode © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 61. Faster compilation GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0 © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 62. Developer guided splits © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 63. Splitting the app © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 64. Generated deferred JS © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 65. Client bundles Image, Text, Data, CSS Resources pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 66. CSS with conditionals © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 67. CSS with conditionals © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 68. CSS with conditionals © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 69. UI Binding © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 70. Declarative user interfaces © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 71. Facing the layout problem © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 72. -XdisableClassMetadata GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0 © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 73. does anyone catch CCE? void makeItQuack(Animal animal) { try { ((Quacker) animal).quack(); } catch (ClassCastException c) { Window.alert("This doesn't quack."); } } GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0 © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 74. -XdisableCastChecking dynamicCast(animal, 2).quack(); animal.quack(); © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 75. -XdisableCastChecking dynamicCast(animal, 2).quack(); animal.quack(); 1% script size reduction © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 76. -XdisableCastChecking dynamicCast(animal, 2).quack(); 10% speed improvement in performance-sensitive code animal.quack(); 1% script size reduction © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 77. Recap GWT 2.0 Feature for developers for users In-browser hosted mode debug in real brwosers Faster compilation less thumb-twiddling script size reductions and speed simple flag enable size/ speed gains apps start faster, run faster improvements low-risk, easy way to spread download code splitting apps start faster, stay interactive time client bundle project orga != deploy orga fewer http roundtrips layout you can count on less time fighting css and layout faster, smoother layout and resizing GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0 © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 78. Session topics • Webapps here and now • The Google Web Toolkit • What’s new with 2.0  Architecture „best practices“ © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 79. Ray Ryan - lessons learned © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 80. #1 http://blogdoxoto.blogspot.com/2008/11/voc-reclama-do-onibus-lotado.html eventbus © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 81. #2 command pattern © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 82. #3 Model View Presenter © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 83. #4 get browser history right © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 84. #5 Dependency Injection © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 85. it’s all about de-coupling GWT brings software engineering to web application development pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 86. #1 use eventbus... © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 87. ...to fight spaghetti © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 88. don’t call me, I’ll call you EventBus Master view Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 89. don’t call me, I’ll call you EventBus fire selection event Master view Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 90. don’t call me, I’ll call you EventBus fire selection event Master view receive selection event Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 91. don’t call me, I’ll call you, and you too EventBus Master view Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 92. don’t call me, I’ll call you, and you too Bread crumb View EventBus Master view Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 93. don’t call me, I’ll call you, and you too Bread crumb View EventBus fire selection event Master view Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 94. don’t call me, I’ll call you, and you too receive selection event Bread crumb View EventBus fire selection event Master view receive selection event Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 95. don’t call me, I’ll call you, and you too receive selection event Bread crumb View EventBus fire selection event Master view receive selection event Detail view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 96. unreal de-coupling? EventBus Master view Detail view RPC © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 97. unreal de-coupling? EventBus Master view ent (1) change ev Detail view RPC © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 98. unreal de-coupling? EventBus Master view ent (1) change ev Detail view (2) store data RPC © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 99. unreal de-coupling? EventBus Master view ent (1) change ev Detail view (2) store (3) updated data data RPC © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 100. unreal de-coupling? (4) updated data EventBus Master view ta (4) u pdated da ent (1) change ev Detail view (2) store (3) updated data data RPC © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 101. Use GWT native events © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 102. #2 command pattern © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 103. command pattern GOF Pattern commonly used in Rich Clients pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 104. server communication command pattern dispatch service XHandler XAction YHandler XResult ZHandler © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 105. boundaries dispatch service XHandler XAction YHandler XResult ZHandler Browser / JS GWT RPC Servlet / Java © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 106. handler registry dispatch service XAction XHandler XResult YHandler ZHandler by hand, Spring, Guice, you name it © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 107. connecting to the backend dispatch service XAction XHandler XResult Service Spring Backend DAO A DAO B by Hand, Spring, Guice, you name it © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 108. leverage point for caching batching exception handling securing communication pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 109. #3 Model View Presenter © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 110. M - V - Controller View Da tab ind ing Model Controller © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 111. M - V - Controller View Da tab ind ing Model Controller © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 112. M - V - Presenter Model Presenter View © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 113. M - V - Presenter Model Presenter View © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 114. M - V - Presenter Model Presenter View Mock view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 115. M - V - Presenter Model Presenter View Mock view © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 116. M - V - Presenter Model Presenter Mock view View © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 117. Use interfaces © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 118. #4 get browser history right © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 119. history management from day one back button and refresh as a feature (not a catastrophe) use “place” abstraction pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 120. take the bus Place View EventBus PlaceManager © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 121. take the bus Place View EventBus (1) receive browser history events PlaceManager © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 122. take the bus Place View EventBus (1) receive browser history events (2) fire place event PlaceManager © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 123. take the bus (3) receive place event Place View EventBus (1) receive browser history events (2) fire place event PlaceManager © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 124. #5 Dependency Injection © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 125. convention + runtime no globals no service locator push in dependencies runtime wires instances together pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 126. common DI containers use reflection. reflection does not work with GWT (c) Rakesh Ashok pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 127. deferred binding GWT offers similar approach through code generators and implementation replacement “reflection at compile time” pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 128. GIN © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 129. following Ray Ryans path COMMAND PATTERN gwt-dispatch EVENTBUS + PLACE MANAGEMENT + MVP gwt-presenter DEPENDENCY INJECTION gin pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 130. Thanks! © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 131. Papick G. Taboada Dipl. W-Ing (TH) projects, training, coaching, technology scouting pgt technolgoy scouting GmbH - (c) 2009 - http://pgt.de
  • 132. PGT T3CHNOLOGY SCOUTING http://pgt.de © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 133. Time for Questions? © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 134. meet outside © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 135. Credits © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 136. 5946730 7808697 5946730 5457175 7937833 2959336 http://istockphoto.com © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 137. 234813_R_K 251666_R_K 288060_R_B Robert Babiak Klausi Gabi Schoenemann 403531_R 380693_R_K 407554_R_K_B Egon Häbich Matthias Balzer Rainer Sturm 418630_R_K_B 423871_R_B 424200_R_K Rainer Sturm Hartmut Giessler Sunny33 http://pixelio.de © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 138. 294663_R_K_B 320285_R_K 342469_R Stephanie Hofschlaeger Jeger Andreas Morlok 412134_R_K 413461_R 414495_R_B Tim Reckmann BirgitH Rainer Sturm 424566_R_K 426440_R 427926_R Susanne Schmich Joujou Schubalu http://pixelio.de © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 139. 367537_R_K_B 416617_R_K_B 428983_R_K_B Thomas Anderson Rainer Sturm Rainer Sturm http://pixelio.de © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de
  • 140. Rakesh Ashok http://www.flickr.com/photos/rakeshashok/3198323549 http://creativecommons.org/licenses/by-nc-nd/2.0/deed.de Stadtmarketing Karlsruhe GmbH http://www.karlsruhe.de/stadt/stadtmarketing/presse/fotos.de http://msande277.wordpress.com/2009/05/25/the-segway-its-a-engineering-class-project/ http://www.the-uno-tomorrows-transportation.com Others © 2009 Papick G. Taboada | pgt technology scouting GmbH | http://pgt.de

Editor's Notes

  1. Hard to define – what is the web 2.0? Set of public web applications? Survivors of the .com crash? Set of Buzzwords? Set of technologies used?
  2. What are Web 2.0 Apps, and where did they come from? DoubleClick → Google AdSense Ofoto (Kodakgallery) → Flickr „Akamai → BitTorrent mp3.com → Napster (iTunes?) Britannica Online → Wikipedia personal websites → blogging Evite → Upcoming.org and EVDB domain name speculation → search engine optimization page views → cost per click screen scraping → web services publishing → participation content management systems → wikis directories (”taxonomy“) → tagging (”folksonomy“) stickiness → syndication
  3. Web 2.0 buzzwords we probably should know... RSS Atom Trackbacks Pingbacks Social bookmarking Podcasting (audio, video) Blogs, blogosphere RIAs – Rich Internet Applications
  4. Builds on known DHTML technologies HTML Javascript CSS Less plugin based… no Java applets no Flash applets etc…
  5. Rich user experience by great ideas by great user interface by good services by low pricing
  6. Mashups More than eye candy Integration happens “on the client” Browser as runtime engine JS as programming language (outch) Google (and others) as service providers
  7. No Plugins Just Javascript, HTML and CSS
  8. TODO tabelle abpinseln
  9. TODO tabelle abpinseln
  10. TODO tabelle abpinseln
  11. todo: bild
  12. From: Fast, Easy, Beautiful – Pick Three Google Developer Days 2007 Copyright Google
  13. From: Fast, Easy, Beautiful – Pick Three Google Developer Days 2007 Copyright Google
  14. From: Fast, Easy, Beautiful – Pick Three Google Developer Days 2007 Copyright Google
  15. From: Fast, Easy, Beautiful – Pick Three Google Developer Days 2007 Copyright Google
  16. Browsers where dumb html terminals Page roundtrips Latency High amount of data transferred over and over again High server side resource consumption
  17. With Ajax Background, asynchronous communication With DHTML Application runtime platform Easy, really VERY *easy* deployment
  18. GWT application are standalone rich client applications running in the browser Can use RPC to fetch/ send data to the server, as rich clients do.
  19. No eye candy out of the box
  20. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  21. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  22. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  23. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  24. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  25. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
  26. GWT provides performance twirks that would be hard to do by hand Image bundles Ressource bundles (sandbox) RPC optimization Code optimization Remove unused code Code compression/ obfuscation
  27. - DOM Abstraktion - Json, HTTP, HTML API - Browser History API - Unified event modell
  28. - obfuscation - code inlining - generate per browser per language permutationen (minimal code per instance)
  29. GWT defines coarse grained components called modules Young (huge, active) community developing many modules Logging, drag and drop, UI components, etc… Write your own UI-Components By composition By using JSNI By working with the DOM
  30. GWT provides a simple and powerful RPC framework Server side is backed by servlets Code gets optimized by the compiler Sends serializable Java objects over the wire (between browser and server) Simple integration to Java backends
  31. Asynchronous JavaScript and XML
  32. Asynchronous JavaScript and XML
  33. Asynchronous JavaScript and XML
  34. GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0 Google Web Toolkit Track - Bruce Johnson One of the nicest things about working on an open source project is the atmosphere of community collaboration and brainstorming that it fosters. The GWT engineering team has been listening hard to the community about how GWT can be improved, and we're excited to take you on a tour of the powerful new features that have resulted. GWT 2.0 contains huge improvements, including dynamic script loading, a new catalog of compiler optimizations, and a new approach to hosted mode debugging that promises to revolutionize your productivity. Without a doubt, it will change the way you use GWT. http://code.google.com/events/io/2009/sessions/GwtPreviewGoogleWebToolkit2.html
  35. http://code.google.com/p/google-web-toolkit-incubator/wiki/CssResource
  36. - 1% script size reduction – 10% speed improvement in performance-sensitive code
  37. - 1% script size reduction – 10% speed improvement in performance-sensitive code
  38. Model-view-presenter - Wikipedia, the free encyclopedia
  39. Lays the groundwork for GWT.runAsync() Undo / Redo Gears / HTML5 DB
  40. Model-view-presenter - Wikipedia, the free encyclopedia