• Like
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.

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


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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    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 Autoquake.com Technologies we use: Java,JEE,Groovy,Grails,GWT My current interests are: Scala, Lift, Play, Clojure Twitter: @vigosun Email: rustem.suniev@gmail.com
  • 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, Playapps.net ● 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>&{'views.main.tools.login'}</h1>) ● User and SEO friendly URL's ● Logging support (Logger.info("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 ● www.playframework.org ● http://groups.google.com/group/play-framework/ ● http://planet.playframework.org/
  • 20. Thank you!