Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010
Upcoming SlideShare
Loading in...5

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



Total Views
Views on SlideShare
Embed Views



3 Embeds 276 239
http://smash 36 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

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

  • Introduction to Play! Framework
  • 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:
  • Why another Web framework? I'm tired to learn all of them
  • 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
  • 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
  • MVC in Play! ● Model (not anemic) ● Controller ● Convention based REST routing ● View (efficient template system)
  • 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
  • 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
  • Jobs ● Scheduled jobs ● Bootstrapping ● Suspendable requests Future<InputStream> task = new ReportAsPDFJob(report).now(); waitFor(task);
  • 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”
  • 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
  • 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
  • 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?
  • What Scala brings to Play! ● Scala 2.8 support ● ScalaTest ● Scalate templates ● Scala console (tab completion) ● AKKA integration
  • Demo time Ok let's build a simple app.
  • 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)
  • 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
  • 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
  • Resourses ● ● ●
  • Thank you!