Your SlideShare is downloading. ×
Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010
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

Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010


Published on

Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010

Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Introduction to Play! Framework
  • 2. About me Rustem Suniev Senior Developer at Technologies we use: Java,JEE,Groovy,Grails,GWT My current interests are: Scala, Lift, Play, Clojure Twitter: @vigosun Email:
  • 3. Why another Web framework? I'm tired to learn all of them
  • 4. What is Play! ● Started 2008 by Guillaume Bort, play dev team and Zenexity ● A new unconventional for Java world approach ● There is no traditional JEE stack ● It's a platform not just a glue framework ● Usability first ● Current version is
  • 5. Main features ● Stateless ● RESTfull (Uses HTTP features not just as a transport) ● No-compilation ● Refresh and see the changes ● In-build compiler and classloader ● Efficient error reporting system ● Build in test framework ● Templates
  • 6. MVC in Play! ● Model (not anemic) ● Controller ● Convention based REST routing ● View (efficient template system)
  • 7. What is Stateless exactly? ● Share nothing architecture ● Easy to scale and support ● Simplifies the code but sometimes we need a state? ● Cache (EhCache, Memcached for scaling options) ● Workarounds
  • 8. Testing ● Can't execute tests outside of the framework We have 3 types of tests: ● Unit ● Functional ● Selenium simplified ● Code coverage via Cobertura plugin ● YAML and Fixtures
  • 9. Jobs ● Scheduled jobs ● Bootstrapping ● Suspendable requests Future<InputStream> task = new ReportAsPDFJob(report).now(); waitFor(task);
  • 10. Modules system Some of the available modules: ● CRUD ● GAE,GWT ● Guice, Spring ● Stax, ● Siena, Ebean DB, MongoDB ● Installing is simple “play install scala” ● Easy to create a module “play new-module”
  • 11. Small but nice things in Play! ● Framework ID's (play id, prod321.username=test) ● Localisation and I18N (<h1>&{''}</h1>) ● User and SEO friendly URL's ● Logging support ("A log message")) ● Security support ● IDE support
  • 12. Where is Scala stuff? Enough Java Now onto Play! Scala (created by Peter Hausel) “I like Lift ;-) Play is my second choice for Scala-friendly web frameworks” David Pollak creator of Lift on SOF
  • 13. Why Scala? ● Alternative implementation but same platform ● Java enhancers (ex get,set) ● Traits ● Improve expressiveness ● Challenges (API, different language features, Interoperability) ● Another language in the future?
  • 14. What Scala brings to Play! ● Scala 2.8 support ● ScalaTest ● Scalate templates ● Scala console (tab completion) ● AKKA integration
  • 15. Demo time Ok let's build a simple app.
  • 16. Any cons at all? ● Documentation is not up to date and scattered ● Scala module is still in dev (but API changes are less likely) ● Couldn't get cobertura working for 1.1 with Scala ● Sometimes changes in Scala classes are not picked (play clean) ● Start-up time grows with number of classes (play recompiles dependencies as well) ● Scala module (Had to compile from source code)
  • 17. Preparing for Production ● Can be compiled and packaged ● Can be deployed to all major containers ● Some security issue were found recently so it's advised to keep it behind a proxy ● Production behaviour is different ● Use server ID
  • 18. Summary ● Looking forward to 1.1 release ● Scala module looks promising and easy to use ● Better IDE support is required ● Other Scala modules need more documentation ● Better attention is required to keep Java and Scala modules up to date ● Start using Play! Java now
  • 19. Resourses ● ● ●
  • 20. Thank you!