Play Framework                            (Fun is back in Java)                                   @basavSaturday, December...
About Me                    • Just another Java developer                    • have experienced JSP, Struts2, Spring MVC, ...
Agenda                  • Background - 5 mins                  • Why Play! Framework? - 10 mins                  • Feature...
Web is taking over..                    • Web is providing data on                           HTTP not just web pages      ...
Is Java Development                            Fun(for webapps)??Saturday, December 8, 12
Compared toSaturday, December 8, 12
Compared to                           Not Anymore....Saturday, December 8, 12
Saturday, December 8, 12
Web frameworks                           Non Java   Java basedSaturday, December 8, 12
Non Java Web                            frameworksSaturday, December 8, 12
Non Java Web                            frameworks                                   •   Are popularSaturday, December 8, 12
Non Java Web                            frameworks                                   •   Are popular                      ...
Non Java Web                            frameworks                                   •   Are popular                      ...
Non Java Web                            frameworks                                   •   Are popular                      ...
Non Java Web                            frameworks                                   •   Are popular                      ...
Non Java Web                            frameworks                                   •   Are popular                      ...
Java Web frameworksSaturday, December 8, 12
Java Web frameworks                           •   on JVMSaturday, December 8, 12
Java Web frameworks                           •   on JVM                           •   Standard basedSaturday, December 8,...
Java Web frameworks                           •   on JVM                           •   Standard based                     ...
Java Web frameworks                           •   on JVM                           •   Standard based                     ...
Java Web frameworks                           •   on JVM                           •   Standard based                     ...
Java Web frameworks                           •   on JVM                           •   Standard based                     ...
Java Web frameworks                           •   on JVM                           •   Standard based                     ...
Where is the GAP and                             What we Need?Saturday, December 8, 12
Where is the GAP and                             What we Need?                      • HTTP as First Class CitizenSaturday,...
Where is the GAP and                             What we Need?                      • HTTP as First Class Citizen         ...
Where is the GAP and                             What we Need?                      • HTTP as First Class Citizen         ...
Where is the GAP and                             What we Need?                      • HTTP as First Class Citizen         ...
Where is the GAP and                             What we Need?                      • HTTP as First Class Citizen         ...
Conventional Java EE                           Stack for Web Apps                    •      Complex                    •  ...
Conventional Java EE                           Stack for Web Apps                    •      Complex                    •  ...
Why?                           “Java developers are building                           Java applications, not web         ...
Why?                           “Java culture emphasis                           interfaces and layers of                  ...
What about Developer                     Productivity?Saturday, December 8, 12
What about Developer                     Productivity?                • code change -> run Maven / Ant -> build war       ...
Developer ProductivitySaturday, December 8, 12
Developer Productivity                • importantSaturday, December 8, 12
Developer Productivity                • important                • is of economic valueSaturday, December 8, 12
Developer Productivity                • important                • is of economic value                • Lets not pay for ...
Developer Productivity                • important                • is of economic value                • Lets not pay for ...
Where is the GAP and                             What we Need?Saturday, December 8, 12
Where is the GAP and                              What we Need?                      •     HTTP as First Class       •   R...
Where is the GAP and                              What we Need?                      •     HTTP as First Class       •   R...
Where is the GAP and                              What we Need?                      •     HTTP as First Class       •   R...
Where is the GAP and                              What we Need?                      •     HTTP as First Class       •   R...
pure Java Web Framework                    • https://github.com/playframework/play.gitSaturday, December 8, 12
• Founded by Guillaume Bort in 2007                    •      500,000+ downloads, and counting                    •      3...
Play isSaturday, December 8, 12
Play is                    • Full Stack Framework (from compilation to                           deployment)Saturday, Dece...
Play is                    • Full Stack Framework (from compilation to                           deployment)              ...
Play is                    • Full Stack Framework (from compilation to                           deployment)              ...
Play is                    • Full Stack Framework (from compilation to                           deployment)              ...
Play is                    • Full Stack Framework (from compilation to                           deployment)              ...
Play is                    • Full Stack Framework (from compilation to                           deployment)              ...
Play History                           • Started with Servlet and JSPSaturday, December 8, 12
Play History                                • Servlet and JSP replaced by                                  custom Classloa...
Play History                                 Introduced                               • Ivy For Build                     ...
Play History                                  Introduced                                • Ivy SBT                         ...
Our focus for Today is                        on Play 1.2.5Saturday, December 8, 12
Full Stack...Saturday, December 8, 12
Full Stack...                • Full Stack - everything “needed” is bundled                           JDT Compiler     JPAS...
Full Stack...                • Full Stack - everything “needed” is bundled                            JDT Compiler     JPA...
What’s in there?Saturday, December 8, 12
What’s in there?                             org.eclipse.jdt.core-3.6.0.jarSaturday, December 8, 12
What’s in there?                             org.eclipse.jdt.core-3.6.0.jar                                 netty-3.2.4.Fi...
What’s in there?                             org.eclipse.jdt.core-3.6.0.jar                                 netty-3.2.4.Fi...
What’s in there?Saturday, December 8, 12
What’s in there?                              hibernate-entitymanager-3.6.0.jar                                 hibernate-...
What’s in there?                               joda-date-time                                 mem-cache                   ...
What’s in there?                               joda-date-time                                 mem-cache                   ...
What’s in there?Saturday, December 8, 12
What’s in there?                               commons-lang                           commons-fileupload                   ...
What’s in there?                               commons-lang                           commons-fileupload                   ...
My top 10 featuresSaturday, December 8, 12
My top 10 features                •          Pure JavaSaturday, December 8, 12
My top 10 features                •          Pure Java                •          Starts fast, runs fastSaturday, December ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                •  ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                •  ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                •  ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                •  ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                   ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                   ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                   ...
My top 10 features                •          Pure Java                •          Starts fast, runs fast                   ...
URL Routing & HTTP Parameter bindingSaturday, December 8, 12
URL Routing & HTTP Parameter binding         http://www.myapp.com/items/233Saturday, December 8, 12
URL Routing & HTTP Parameter binding         http://www.myapp.com/items/233        GET                /items/{id}   Applic...
URL Routing & HTTP Parameter binding         http://www.myapp.com/items/233        GET                /items/{id}   Applic...
URL Routing & HTTP Parameter binding         http://www.myapp.com/items/233        GET                /items/{id}   Applic...
URL Routing & HTTP Parameter bindingSaturday, December 8, 12
URL Routing & HTTP Parameter binding   POST                    /items/save   Application.saveSaturday, December 8, 12
URL Routing & HTTP Parameter binding   POST                    /items/save   Application.save    <form action="@{Applicati...
URL Routing & HTTP Parameter binding   POST                    /items/save   Application.save    <form action="@{Applicati...
Stateless Architecture                    •      “Share Nothing” Philosophy - Nothing is                           shared ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Where is the Session?              Web Browser                    Play! Framework Server                                  ...
Play URLs Are RESTFulSaturday, December 8, 12
Play URLs Are RESTFul                           UGLYSaturday, December 8, 12
Play URLs Are RESTFul                           UGLY                •          http://www.myapp.com/cont/servlet/buyServic...
Play URLs Are RESTFul                           UGLY                •          http://www.myapp.com/cont/servlet/buyServic...
Play URLs Are RESTFul                           UGLY                •          http://www.myapp.com/cont/servlet/buyServic...
Play URLs Are RESTFul                           UGLY                •          http://www.myapp.com/cont/servlet/buyServic...
Play URLs Are RESTFul                           UGLY                •          http://www.myapp.com/cont/servlet/buyServic...
Play Request LifeCycleSaturday, December 8, 12
Play Request LifeCycleSaturday, December 8, 12
Play HTTP Request PathSaturday, December 8, 12
Play HTTP Request PathSaturday, December 8, 12
Play ModulesSaturday, December 8, 12
Play ModulesSaturday, December 8, 12
Informative Error Page                           No Maven or Ant or Ivy build is requiredSaturday, December 8, 12
Informative Error Page                           No Maven or Ant or Ivy build is requiredSaturday, December 8, 12
Tests in the BrowserSaturday, December 8, 12
Tests in the BrowserSaturday, December 8, 12
Documentation & BooksSaturday, December 8, 12
Saturday, December 8, 12
Wait there is more...Saturday, December 8, 12
Saturday, December 8, 12
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
• Native Cloud deployment support on                       Playapps, Heroku, Google App Engine,                       Clou...
Quick DemoSaturday, December 8, 12
Q &ASaturday, December 8, 12
References                       • http://www.playframework.org/Saturday, December 8, 12
Thank You !                           for listeningSaturday, December 8, 12
Upcoming SlideShare
Loading in...5
×

Play

713

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
713
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Play

  1. 1. Play Framework (Fun is back in Java) @basavSaturday, December 8, 12
  2. 2. About Me • Just another Java developer • have experienced JSP, Struts2, Spring MVC, JSF etc • Fed up with complex Java EE environment for simple Web apps • Current Interests • Clojure, Play, Cloud..Saturday, December 8, 12
  3. 3. Agenda • Background - 5 mins • Why Play! Framework? - 10 mins • Features and Benefits - 15 mins • Demo - 10 mins • Q &ASaturday, December 8, 12
  4. 4. Web is taking over.. • Web is providing data on HTTP not just web pages • Browser is acting as an Operating system • Javascript has become very powerful • Webapps are aliveSaturday, December 8, 12
  5. 5. Is Java Development Fun(for webapps)??Saturday, December 8, 12
  6. 6. Compared toSaturday, December 8, 12
  7. 7. Compared to Not Anymore....Saturday, December 8, 12
  8. 8. Saturday, December 8, 12
  9. 9. Web frameworks Non Java Java basedSaturday, December 8, 12
  10. 10. Non Java Web frameworksSaturday, December 8, 12
  11. 11. Non Java Web frameworks • Are popularSaturday, December 8, 12
  12. 12. Non Java Web frameworks • Are popular • HTTP is first class citizenSaturday, December 8, 12
  13. 13. Non Java Web frameworks • Are popular • HTTP is first class citizen • Rapid DevelopmentSaturday, December 8, 12
  14. 14. Non Java Web frameworks • Are popular • HTTP is first class citizen • Rapid Development • Rapid DeploymentSaturday, December 8, 12
  15. 15. Non Java Web frameworks • Are popular • HTTP is first class citizen • Rapid Development • Rapid Deployment • Less codeSaturday, December 8, 12
  16. 16. Non Java Web frameworks • Are popular • HTTP is first class citizen • Rapid Development • Rapid Deployment • Less code • JVM EcosystemSaturday, December 8, 12
  17. 17. Java Web frameworksSaturday, December 8, 12
  18. 18. Java Web frameworks • on JVMSaturday, December 8, 12
  19. 19. Java Web frameworks • on JVM • Standard basedSaturday, December 8, 12
  20. 20. Java Web frameworks • on JVM • Standard based • Implement Heavy Servlet SpecsSaturday, December 8, 12
  21. 21. Java Web frameworks • on JVM • Standard based • Implement Heavy Servlet Specs • Embrace HTTPSaturday, December 8, 12
  22. 22. Java Web frameworks • on JVM • Standard based • Implement Heavy Servlet Specs • Embrace HTTP • Rapid DevelopmentSaturday, December 8, 12
  23. 23. Java Web frameworks • on JVM • Standard based • Implement Heavy Servlet Specs • Embrace HTTP • Rapid Development • Rapid DeploymentSaturday, December 8, 12
  24. 24. Java Web frameworks • on JVM • Standard based • Implement Heavy Servlet Specs • Embrace HTTP • Rapid Development • Rapid Deployment • Less More codeSaturday, December 8, 12
  25. 25. Where is the GAP and What we Need?Saturday, December 8, 12
  26. 26. Where is the GAP and What we Need? • HTTP as First Class CitizenSaturday, December 8, 12
  27. 27. Where is the GAP and What we Need? • HTTP as First Class Citizen • Rapid DevelopmentSaturday, December 8, 12
  28. 28. Where is the GAP and What we Need? • HTTP as First Class Citizen • Rapid Development • Rapid DeploymentSaturday, December 8, 12
  29. 29. Where is the GAP and What we Need? • HTTP as First Class Citizen • Rapid Development • Rapid Deployment +Saturday, December 8, 12
  30. 30. Where is the GAP and What we Need? • HTTP as First Class Citizen • Rapid Development • Rapid Deployment + • on JVM Ecosystem (i.e. Pure Java Support)Saturday, December 8, 12
  31. 31. Conventional Java EE Stack for Web Apps • Complex • Lots of • Specs and Implementations • Configurations • Layered • Defined by Standards / Specs • Assembled by InterfacesSaturday, December 8, 12
  32. 32. Conventional Java EE Stack for Web Apps • Complex • Lots of • Specs and Implementations OVER ARCHITECTED • Configurations • Layered • Defined by Standards / Specs • Assembled by InterfacesSaturday, December 8, 12
  33. 33. Why? “Java developers are building Java applications, not web applications”Saturday, December 8, 12
  34. 34. Why? “Java culture emphasis interfaces and layers of abstraction over solving problems directly.”Saturday, December 8, 12
  35. 35. What about Developer Productivity?Saturday, December 8, 12
  36. 36. What about Developer Productivity? • code change -> run Maven / Ant -> build war -> copy-> Deploy -> wait (sometimes server restart) -> open-browser-> test (Try developing something on Webpshere, you understand what I mean)Saturday, December 8, 12
  37. 37. Developer ProductivitySaturday, December 8, 12
  38. 38. Developer Productivity • importantSaturday, December 8, 12
  39. 39. Developer Productivity • important • is of economic valueSaturday, December 8, 12
  40. 40. Developer Productivity • important • is of economic value • Lets not pay for compile-test-deploy cycleSaturday, December 8, 12
  41. 41. Developer Productivity • important • is of economic value • Lets not pay for compile-test-deploy cycle • more importantly - Lets not bore themSaturday, December 8, 12
  42. 42. Where is the GAP and What we Need?Saturday, December 8, 12
  43. 43. Where is the GAP and What we Need? • HTTP as First Class • Rapid Development Citizen • Rapid Deployment + • on JVM Ecosystem (i.e. Pure Java Support)Saturday, December 8, 12
  44. 44. Where is the GAP and What we Need? • HTTP as First Class • Rapid Development Citizen • Rapid Deployment + • on JVM Ecosystem (i.e. Pure Java Support) • Developer ProductivitySaturday, December 8, 12
  45. 45. Where is the GAP and What we Need? • HTTP as First Class • Rapid Development Citizen • Rapid Deployment + • on JVM Ecosystem (i.e. Pure Java Support) • Developer Productivity =Saturday, December 8, 12
  46. 46. Where is the GAP and What we Need? • HTTP as First Class • Rapid Development Citizen • Rapid Deployment + • on JVM Ecosystem (i.e. Pure Java Support) • Developer Productivity =Saturday, December 8, 12
  47. 47. pure Java Web Framework • https://github.com/playframework/play.gitSaturday, December 8, 12
  48. 48. • Founded by Guillaume Bort in 2007 • 500,000+ downloads, and counting • 3000+ questions tagged in stackoverflow • 7000+ members on Play google groups • ~7000 topics • 100+ modulesSaturday, December 8, 12
  49. 49. Play isSaturday, December 8, 12
  50. 50. Play is • Full Stack Framework (from compilation to deployment)Saturday, December 8, 12
  51. 51. Play is • Full Stack Framework (from compilation to deployment) • Stateless ArchitectureSaturday, December 8, 12
  52. 52. Play is • Full Stack Framework (from compilation to deployment) • Stateless Architecture • Not Based on Servlet APISaturday, December 8, 12
  53. 53. Play is • Full Stack Framework (from compilation to deployment) • Stateless Architecture • Not Based on Servlet API • RESTFul ArchitectureSaturday, December 8, 12
  54. 54. Play is • Full Stack Framework (from compilation to deployment) • Stateless Architecture • Not Based on Servlet API • RESTFul Architecture • Shared Philosophy - Heavily borrowed from Rails / DjangoSaturday, December 8, 12
  55. 55. Play is • Full Stack Framework (from compilation to deployment) • Stateless Architecture • Not Based on Servlet API • RESTFul Architecture • Shared Philosophy - Heavily borrowed from Rails / Django • Web Framework - Not a Java Framework!!Saturday, December 8, 12
  56. 56. Play History • Started with Servlet and JSPSaturday, December 8, 12
  57. 57. Play History • Servlet and JSP replaced by custom Classloader • Introduced Python support • Groovy for Templates • Async IOSaturday, December 8, 12
  58. 58. Play History Introduced • Ivy For Build • Websockets • ScalaSaturday, December 8, 12
  59. 59. Play History Introduced • Ivy SBT • Groovy Scala Templates • Akka for middleware • First class support for ScalaSaturday, December 8, 12
  60. 60. Our focus for Today is on Play 1.2.5Saturday, December 8, 12
  61. 61. Full Stack...Saturday, December 8, 12
  62. 62. Full Stack... • Full Stack - everything “needed” is bundled JDT Compiler JPASaturday, December 8, 12
  63. 63. Full Stack... • Full Stack - everything “needed” is bundled JDT Compiler JPA Can be packaged as standard WARS and deployed in Servlet ContainersSaturday, December 8, 12
  64. 64. What’s in there?Saturday, December 8, 12
  65. 65. What’s in there? org.eclipse.jdt.core-3.6.0.jarSaturday, December 8, 12
  66. 66. What’s in there? org.eclipse.jdt.core-3.6.0.jar netty-3.2.4.Final.jar aync-http-client-1.6.3.jarSaturday, December 8, 12
  67. 67. What’s in there? org.eclipse.jdt.core-3.6.0.jar netty-3.2.4.Final.jar aync-http-client-1.6.3.jarSaturday, December 8, 12
  68. 68. What’s in there?Saturday, December 8, 12
  69. 69. What’s in there? hibernate-entitymanager-3.6.0.jar hibernate-jpa-2.0-api-1.0.0.Final.jar jta-1.1.jar myql-connector-java-5.1.13.jar postgressql-9.0.jar h2-1.3.149.jarSaturday, December 8, 12
  70. 70. What’s in there? joda-date-time mem-cache groovy jamon-2.7.jarSaturday, December 8, 12
  71. 71. What’s in there? joda-date-time mem-cache groovy jamon-2.7.jarSaturday, December 8, 12
  72. 72. What’s in there?Saturday, December 8, 12
  73. 73. What’s in there? commons-lang commons-fileupload commons-io commons-collections commons-logging commons-email commons-codec commons-beanutisSaturday, December 8, 12
  74. 74. What’s in there? commons-lang commons-fileupload commons-io commons-collections commons-logging commons-email commons-codec commons-beanutisSaturday, December 8, 12
  75. 75. My top 10 featuresSaturday, December 8, 12
  76. 76. My top 10 features • Pure JavaSaturday, December 8, 12
  77. 77. My top 10 features • Pure Java • Starts fast, runs fastSaturday, December 8, 12
  78. 78. My top 10 features • Pure Java • Starts fast, runs fast • No compile, deploy, restart cycle - Fix the bug and hit reload!Saturday, December 8, 12
  79. 79. My top 10 features • Pure Java • Starts fast, runs fast • No compile, deploy, restart cycle - Fix the bug and hit reload! • URL RoutingSaturday, December 8, 12
  80. 80. My top 10 features • Pure Java • Starts fast, runs fast • No compile, deploy, restart cycle - Fix the bug and hit reload! • URL Routing • HTTP Parameter BindingSaturday, December 8, 12
  81. 81. My top 10 features • Pure Java • Starts fast, runs fast • No compile, deploy, restart cycle - Fix the bug and hit reload! • URL Routing • HTTP Parameter Binding • Share nothing system - no state in the serverSaturday, December 8, 12
  82. 82. My top 10 features • Pure Java • Starts fast, runs fast • Exact errors (including • No compile, deploy, line numbers, even for groovy templates) restart cycle - Fix the bug and hit reload! • URL Routing • HTTP Parameter Binding • Share nothing system - no state in the serverSaturday, December 8, 12
  83. 83. My top 10 features • Pure Java • Starts fast, runs fast • Exact errors (including • No compile, deploy, line numbers, even for groovy templates) restart cycle - Fix the bug and hit reload! • Extensible by modules • URL Routing • HTTP Parameter Binding • Share nothing system - no state in the serverSaturday, December 8, 12
  84. 84. My top 10 features • Pure Java • Starts fast, runs fast • Exact errors (including • No compile, deploy, line numbers, even for groovy templates) restart cycle - Fix the bug and hit reload! • Extensible by modules • URL Routing • Super Testing support • HTTP Parameter Binding • Share nothing system - no state in the serverSaturday, December 8, 12
  85. 85. My top 10 features • Pure Java • Starts fast, runs fast • Exact errors (including • No compile, deploy, line numbers, even for groovy templates) restart cycle - Fix the bug and hit reload! • Extensible by modules • URL Routing • Super Testing support • HTTP Parameter • Easy deployment on Binding Cloud • Share nothing system - no state in the serverSaturday, December 8, 12
  86. 86. URL Routing & HTTP Parameter bindingSaturday, December 8, 12
  87. 87. URL Routing & HTTP Parameter binding http://www.myapp.com/items/233Saturday, December 8, 12
  88. 88. URL Routing & HTTP Parameter binding http://www.myapp.com/items/233 GET /items/{id} Application.showSaturday, December 8, 12
  89. 89. URL Routing & HTTP Parameter binding http://www.myapp.com/items/233 GET /items/{id} Application.show public static show(Long id) { Item item = Item.findById(id); render(item); }Saturday, December 8, 12
  90. 90. URL Routing & HTTP Parameter binding http://www.myapp.com/items/233 GET /items/{id} Application.show public static show(Long id) { Item item = Item.findById(id); render(item); } <div><b>Item : </b>${item.name}</div>Saturday, December 8, 12
  91. 91. URL Routing & HTTP Parameter bindingSaturday, December 8, 12
  92. 92. URL Routing & HTTP Parameter binding POST /items/save Application.saveSaturday, December 8, 12
  93. 93. URL Routing & HTTP Parameter binding POST /items/save Application.save <form action="@{Application.save}" > <input type="hidden" name="item.id" value="${item.id}"> <input type="text" name="item.name" /> <input type="submit" value="Submit" /> </form>Saturday, December 8, 12
  94. 94. URL Routing & HTTP Parameter binding POST /items/save Application.save <form action="@{Application.save}" > <input type="hidden" name="item.id" value="${item.id}"> <input type="text" name="item.name" /> <input type="submit" value="Submit" /> </form> public void save(Item item) { item.save(); show(item.id); }Saturday, December 8, 12
  95. 95. Stateless Architecture • “Share Nothing” Philosophy - Nothing is shared between reach request • No Session - i.e. No “HTTPSession” Object • You cannot do : • session.setAttribute("user" , user);  • Use HttpSessionListener to count sessions • ServletFilter , Servlet-related securities • Instead Play uses (delegates to) memcached as a workaroundSaturday, December 8, 12
  96. 96. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  97. 97. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  98. 98. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  99. 99. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  100. 100. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  101. 101. Where is the Session? Web Browser Play! Framework Server Application State Play! Framework Server 2 DB Application Crypted signed cookieSaturday, December 8, 12
  102. 102. Play URLs Are RESTFulSaturday, December 8, 12
  103. 103. Play URLs Are RESTFul UGLYSaturday, December 8, 12
  104. 104. Play URLs Are RESTFul UGLY • http://www.myapp.com/cont/servlet/buyService? sessionId=3gh3haaa2gg2&action=nextPage&idExpanse =false&flow=3C&event=s1e1&entityId=23bS&role=p& date=04%2F12%F2010&returnPage=homeS02&out=tr ueSaturday, December 8, 12
  105. 105. Play URLs Are RESTFul UGLY • http://www.myapp.com/cont/servlet/buyService? sessionId=3gh3haaa2gg2&action=nextPage&idExpanse =false&flow=3C&event=s1e1&entityId=23bS&role=p& date=04%2F12%F2010&returnPage=homeS02&out=tr ue GRACEFULSaturday, December 8, 12
  106. 106. Play URLs Are RESTFul UGLY • http://www.myapp.com/cont/servlet/buyService? sessionId=3gh3haaa2gg2&action=nextPage&idExpanse =false&flow=3C&event=s1e1&entityId=23bS&role=p& date=04%2F12%F2010&returnPage=homeS02&out=tr ue GRACEFUL • http://mysite.com/list/products/page/2Saturday, December 8, 12
  107. 107. Play URLs Are RESTFul UGLY • http://www.myapp.com/cont/servlet/buyService? sessionId=3gh3haaa2gg2&action=nextPage&idExpanse =false&flow=3C&event=s1e1&entityId=23bS&role=p& date=04%2F12%F2010&returnPage=homeS02&out=tr ue GRACEFUL • http://mysite.com/list/products/page/2 • http://mysite.com/user/53Saturday, December 8, 12
  108. 108. Play URLs Are RESTFul UGLY • http://www.myapp.com/cont/servlet/buyService? sessionId=3gh3haaa2gg2&action=nextPage&idExpanse =false&flow=3C&event=s1e1&entityId=23bS&role=p& date=04%2F12%F2010&returnPage=homeS02&out=tr ue GRACEFUL • http://mysite.com/list/products/page/2 • http://mysite.com/user/53 You can Read it, Bookmark it, Share it and more over SEO FriendlySaturday, December 8, 12
  109. 109. Play Request LifeCycleSaturday, December 8, 12
  110. 110. Play Request LifeCycleSaturday, December 8, 12
  111. 111. Play HTTP Request PathSaturday, December 8, 12
  112. 112. Play HTTP Request PathSaturday, December 8, 12
  113. 113. Play ModulesSaturday, December 8, 12
  114. 114. Play ModulesSaturday, December 8, 12
  115. 115. Informative Error Page No Maven or Ant or Ivy build is requiredSaturday, December 8, 12
  116. 116. Informative Error Page No Maven or Ant or Ivy build is requiredSaturday, December 8, 12
  117. 117. Tests in the BrowserSaturday, December 8, 12
  118. 118. Tests in the BrowserSaturday, December 8, 12
  119. 119. Documentation & BooksSaturday, December 8, 12
  120. 120. Saturday, December 8, 12
  121. 121. Wait there is more...Saturday, December 8, 12
  122. 122. Saturday, December 8, 12
  123. 123. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, CloudbeesSaturday, December 8, 12
  124. 124. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, Cloudbees • Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, Excel export, etc.Saturday, December 8, 12
  125. 125. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, Cloudbees • Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, Excel export, etc. • Easy to learnSaturday, December 8, 12
  126. 126. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, Cloudbees • Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, Excel export, etc. • Easy to learn • .............................. and it’sSaturday, December 8, 12
  127. 127. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, Cloudbees • Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, Excel export, etc. • Easy to learn • .............................. and it’s JavaSaturday, December 8, 12
  128. 128. • Native Cloud deployment support on Playapps, Heroku, Google App Engine, Cloudbees • Modules for NoSQL, revert DB, Scaffold, Excel, Senia, MongoDB, Scalate, PDF, search, Excel export, etc. • Easy to learn • .............................. and it’s Java Give it a Try !Saturday, December 8, 12
  129. 129. Quick DemoSaturday, December 8, 12
  130. 130. Q &ASaturday, December 8, 12
  131. 131. References • http://www.playframework.org/Saturday, December 8, 12
  132. 132. Thank You ! for listeningSaturday, December 8, 12

×