SproutCore GTUG

1,957 views

Published on

Presentation at Silicon Valley GTUG meetup @ Google. Slides 25-28 introduce microservices.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,957
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SproutCore GTUG

  1. 1. SproutCore
  2. 2. How can we build desktop-class applications on the web?
  3. 3. • Architecture • Framework (SproutCore!) • Deployment (AppEngine!) • Demo
  4. 4. How can we build desktop-class applications on the web?
  5. 5. Like this...
  6. 6. Not this...
  7. 7. Desktop Class Means... Immediate response Rich interactions Offline mode
  8. 8. Document Driven Web Server Web Browser User Business Click Logic Request Response Render Click Request Response Render
  9. 9. Document Driven Document Driven Immediate Rarely Response Rich None Interactions Offline None Mode
  10. 10. Ajax
  11. 11. quot;3270quot; Ajax
  12. 12. quot;3270quot; Ajax Web Server Web Browser User Business Initial Page Load Logic Render (Tiny bit of business logic) Click Request Response Update Page
  13. 13. quot;3270quot; Ajax Document quot;3270quot; Ajax Driven Immediate Rarely Occasionally Response Rich None Some Interactions Offline None Rare Mode
  14. 14. Browser Advancements quot;Theyquot; say... But really... Client computers are too Most clients are as fast as slow servers 2 years ago JavaScript is too slow see v8 & SquirrelFish HTML is too limited Have you seen Safari lately?
  15. 15. Web Client-Server
  16. 16. IMAP/POP User Business Logic
  17. 17. Apache User Backend Service Business Logic
  18. 18. Web Client-Server Is... JavaScript app in browser Loads data via Ajax User interaction is not bound by the server
  19. 19. Document Driven Web Server Web Browser User Business Click Logic Request Response Render Click Request Response Render
  20. 20. quot;3270quot; Ajax Web Server Web Browser User Business Initial Page Load Logic Render (Tiny bit of business logic) Click Request Response Update Page
  21. 21. Web Client-Server Web Server Web Browser User Load JS Client Render Business Logic Click Update Page Request Response Click Update Page
  22. 22. Web Client-Server Document Web quot;3270quot; Ajax Driven Client-Server Immediate Rarely Occasionally Usually Response Rich None Some Always Interactions Offline None Rare Offline Capable Mode
  23. 23. Web Client-Server
  24. 24. But what about the server?
  25. 25. Custom Big Rack Web Application of Servers Business Logic
  26. 26. Custom Web Google Application AppEngine Business Business Logic Logic
  27. 27. Google Microservice AppEngine Business Logic
  28. 28. Microservice is... Thin API over cloud service Designed for speed + scale Moves business logic to the client
  29. 29. Framework
  30. 30. Framework Objectives Provide common applications features for free Optimize across web browsers Eliminate Glue Code Make coding fun!
  31. 31. Cocoa
  32. 32. SproutCore
  33. 33. SproutCore is... Full MVC framework Bindings, Observing, DnD Embraces JavaScript Includes build tools Chrome, Safari, FireFox, IE7+
  34. 34. JavaScript is Great! Late binding quot;Hackablequot; Object Model Closures Lambda Functions
  35. 35. Demo
  36. 36. + SproutCore
  37. 37. Web Client-Server Web Server Web Browser User Load JS Client Render Click Update Page Request Response Click Update Page
  38. 38. Google Microservice AppEngine
  39. 39. sudo gem install sproutcore
  40. 40. www.sproutcore.com
  41. 41. SproutCore

×