For one of our projects, we used Play framework for web app implementation. It was easy to learn Play framework given my background of working with Maven, Tomcat and Eclipse style implementations. Play framework website has clear documentation for installation and usage. Play supports Scala and Java, but we have used it for Java app development.
Why is it developer friendly?
- Easy installation: Download, extract Activator and then add Activator to the system path. That is all! Play is ready to use. An Activator is nothing but combination of SBT (a build tool) plus a means of downloading project templates (like Maven archetypes) and a web interface for managing those projects. Activator also acts as a lightweight server that runs apps. The applications built using Play Framework can also be deployed to any servlet container, like Tomcat.
- Easy Project Creation: Creating a project based off a template is very easy. We can create a template either from Activator’s Web Interface or directly from the command line.
- Easy Execution: Play has an easy to use “development mode” that will let you make changes to code. You can see your results immediately on the page as there is no need to recompile and restart the server.
- Easy IDE Support: With a simple command “activator eclipse”, we can get support for Eclipse IDE.
- Easy Http Routing: HTTP routing is very easy with the built-in HTTP router, i.e., conf/routes file. The router is the component in charge of translating each incoming HTTP request into an Action.
- Easy database schema synchronization: We had two teams, off-shore and on-site working on this project. During development, each team member made updates to the database schema. To make it easier for integrating development, we used evolutions and evolution scripts. When the developer pulls latest code and runs the app, Play checks if there are any database updates. Play updates the developer about any changes and provides an option to execute evolution scripts.
- It comes with type safety: In Play, the compiler checks parts of the code for type safety. This is not only useful for detecting mistakes early in the development process, but it also makes it a lot easier to work on large projects with many developers.
- SBT Awareness: I was aware of Maven and ANT build tools. By using Play framework, I got a chance to build using SBT. SBT is a build tool for Scala and Java, similar to POM in Maven. The build.sbt file defines settings for the project. We can also customize the settings for a project.
- Easy JPA integration: There is no built-in JPA implementation in Play. We can choose any available implementation. We have used Hibernate, and we achieved it by adding dependency in ‘build.sbt’. Clear instructions are available on the Play website.
libraryDependencies ++= Seq( javaJpa, "org.hibernate" % "hibernate-entitymanager" % "3.6.10.Final"exclude("javassist","javassist") )