Your SlideShare is downloading. ×
0
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Google Web Toolkit
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Google Web Toolkit

2,319

Published on

GWT concepts, what's comming in GWT 2.0 and about some of the architecture best practices and lessons learned from the AdWords team

GWT concepts, what's comming in GWT 2.0 and about some of the architecture best practices and lessons learned from the AdWords team

Published in: Technology, Business
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,319
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
14
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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?
  • 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
  • Web 2.0 buzzwords we probably should know...
    RSS
    Atom
    Trackbacks
    Pingbacks
    Social bookmarking
    Podcasting (audio, video)
    Blogs, blogosphere
    RIAs – Rich Internet Applications
  • Builds on known DHTML technologies
    HTML
    Javascript
    CSS
    Less plugin based…
    no Java applets
    no Flash applets
    etc…
  • Rich user experience
    by great ideas
    by great user interface
    by good services
    by low pricing
  • 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
  • No Plugins
    Just Javascript, HTML and CSS
  • TODO tabelle abpinseln
  • TODO tabelle abpinseln
  • TODO tabelle abpinseln
  • todo: bild
  • From:
    Fast, Easy, Beautiful – Pick Three
    Google Developer Days 2007

    Copyright Google
  • From:
    Fast, Easy, Beautiful – Pick Three
    Google Developer Days 2007

    Copyright Google
  • From:
    Fast, Easy, Beautiful – Pick Three
    Google Developer Days 2007

    Copyright Google
  • From:
    Fast, Easy, Beautiful – Pick Three
    Google Developer Days 2007

    Copyright Google
  • Browsers where dumb html terminals
    Page roundtrips
    Latency
    High amount of data transferred over and over again
    High server side resource consumption
  • With Ajax
    Background, asynchronous communication
    With DHTML
    Application runtime platform
    Easy, really VERY *easy* deployment
  • 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.
  • No eye candy out of the box
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • - DOM Abstraktion
    - Json, HTTP, HTML API
    - Browser History API
    - Unified event modell
  • - obfuscation
    - code inlining
    - generate per browser per language permutationen (minimal code per instance)
  • 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
  • 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
  • Asynchronous JavaScript and XML
  • Asynchronous JavaScript and XML
  • Asynchronous JavaScript and XML
  • 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
  • http://code.google.com/p/google-web-toolkit-incubator/wiki/CssResource
  • - 1% script size reduction
    – 10% speed improvement in performance-sensitive code
  • - 1% script size reduction
    – 10% speed improvement in performance-sensitive code
  • Model-view-presenter - Wikipedia, the free encyclopedia
  • Lays the groundwork for
    GWT.runAsync()
    Undo / Redo
    Gears / HTML5 DB
  • Model-view-presenter - Wikipedia, the free encyclopedia
  • Transcript

    • 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

    ×