Play Framework

From Wikipedia, the free encyclopedia
(Redirected from Play framework)

Template:Short description

Page Module:Message box/ambox.css has no content.

Page Module:Infobox/styles.css has no content.

Play Framework
[[Programmer|DeveloperTemplate:Pluralize from text]]Community
Initial releaseScript error: No such module "Date time".
Template:Infobox software/simple
Written inScala
Available inEnglish
TypeWeb application framework
LicenseApache License 2.0
Websiteplayframework.com
RepositoryPlay Repository

Script error: No such module "Check for conflicting parameters".

Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.[1]

Support for the Scala programming language has been available since version 1.1 of the framework.[2] In version 2.0, the framework core was rewritten in Scala. Build and deployment was migrated to SBT, and templates use Scala[3] instead of Apache Groovy.

History

Play was created by software developer Guillaume Bort, while working at Zengularity SA (formerly Zenexity).[4] Although the early releases are no longer available online, there is evidence of Play existing as far back as May 2007.[5] In 2007, pre-release versions of the project were available to download from Zenexity's website.[6]

Version history
Version Date Notes
Unsupported: 1.0Page Template:Version/styles.css has no content. Template:Dts The first published code for 1.0 appeared on Launchpad.[7] This was followed by a full 1.0 release in October 2009.[8]
Unsupported: 1.1Page Template:Version/styles.css has no content. Template:Dts Released after a move from Launchpad to GitHub. It included a migration from Apache MINA to JBoss Netty, Scala support, native GlassFish container, an asynchronous web services library, OAuth support, HTTPS support and other features.[9]
Unsupported: 1.2Page Template:Version/styles.css has no content. Template:Dts It included dependency management with Apache Ivy, support for WebSocket, integrated database migration (reversion was not implemented[10]), a switch to the H2 database as the default development database and other features.[11]
Unsupported: 1.3Page Template:Version/styles.css has no content. Template:Dts libraries upgraded (a.o. netty, hibernate, etc.), added multiple databases support and included customisable template name resolving.
Unsupported: 1.4Page Template:Version/styles.css has no content. Template:Dts Compatible to Java 7 and removed support for Java 6. Added ability to define enabled ssl protocols.
Unsupported: 1.5Page Template:Version/styles.css has no content. Template:Dts Upgraded to Hibernate 5.x. Dropped support for java version prior to 1.8.
Unsupported: 1.6Page Template:Version/styles.css has no content. Template:Dts Compatible to Java 14, libraries upgraded
Unsupported: 1.7Page Template:Version/styles.css has no content. Template:Dts Compatible to Java 17, libraries upgraded, dropped support for java version prior to 11, Play scripts upgrade to Python 3
Unsupported: 2.0Page Template:Version/styles.css has no content. Template:Dts Sadek Drobi joined Guillaume Bort late 2011 to create Play 2.0[12] in conjunction with Typesafe Stack 2.0.[13]
Unsupported: 2.1Page Template:Version/styles.css has no content. Template:Dts Upgraded to Scala 2.10 and introduced, among other new features, modularization, a new JSON API, filters and RequireJS support.[14]
Unsupported: 2.2Page Template:Version/styles.css has no content. Template:Dts Upgraded support for SBT to 0.13, better support for buffering, built in support for gzip and new stage and dist tasks with support for native packaging on several platforms such as OS X (DMG), Linux (RPM, DEB), and Windows (MSI) as well as zip files.
Unsupported: 2.3Page Template:Version/styles.css has no content. Template:Dts Introducing the Activator command, better tooling for static assets, support for Java 8 and Scala 2.11, better performance, Web Service enhancement and support to integrate Actors and Web Sockets.
Unsupported: 2.4Page Template:Version/styles.css has no content. Template:Dts With Dependency injection out of the box, the possibility to embed Play inside other applications, improved Java 8 support, HikariCP as the default connection pool and better testing APIs.
Unsupported: 2.5Page Template:Version/styles.css has no content. Template:Dts Switched from Iteratees to Akka Streams for all asynchronous IO and streaming, replaced custom functional types with Java 8 types (such as CompletionStage and Optional), introduced equivalent Java APIs for features that previously only existing in the Scala API, such as implementing filters and custom body parsers and with a 20% performance increase.
Unsupported: 2.6Page Template:Version/styles.css has no content. Template:Dts Using Akka HTTP as the default server backend, experimental HTTP/2 support, Scala 2.12 support, no more global state under the hood, JSON Web Token format for cookies, improved security and configuration improvements.
Unsupported: 2.7Page Template:Version/styles.css has no content. Template:Dts Scala 2.13 support, support for Caffeine as underlying cache implementation, updated HikariCP and Guice versions, improved form validation and file uploading functions.[15]
Unsupported: 2.8Page Template:Version/styles.css has no content. Template:Dts Java 11 support, Updated Akka, Jackson, support pre-seek sources for range results[16]
Latest version: 2.9Page Template:Version/styles.css has no content. Template:Dts[17] Scala 3, Java 17, and Java 21 support.[18]
Latest version: 3.0Page Template:Version/styles.css has no content. Template:Dts[19] Because Akka is no longer open source, Play switched from Akka to Apache Pekko.[20]
Legend:
Unsupported
Supported
Latest version
Preview version
Page Template:Version/styles.css has no content.

Motivation

Play is heavily inspired by ASP.NET MVC, Ruby on Rails and Django and is similar to this family of frameworks. Play web applications can be written in Scala or Java, in an environment that may be less Java Enterprise Edition-centric. Play uses no Java EE constraints. This can make Play simpler to develop compared to other Java-centric platforms.[21]

Although Play 1.x could also be packaged as WAR files to be distributed to standard Java EE application servers,[22] Play 2.x applications are now designed to be run using the built-in Akka HTTP or Netty web servers exclusively.

Major differences from Java frameworks

  • Stateless: Play 2 is fully RESTful – there is no Java EE session per connection.
  • Integrated unit testing: JUnit and Selenium support is included in the core.
  • API comes with most required elements built-in.
  • Asynchronous I/O: due to using Akka HTTP as its web server, Play can service long requests asynchronously rather than tying up HTTP threads doing business logic like Java EE frameworks that don't use the asynchronous support offered by Servlet 3.0.[23]
  • Modular architecture: like Ruby on Rails and Django, Play comes with the concept of modules.
  • Native Scala support: Play 2 uses Scala internally but also exposes both a Scala API, and a Java API that is deliberately slightly different to fit in with Java conventions, and Play is completely interoperable with Java.

Testing framework

Play provides integration with test frameworks for unit testing and functional testing for both Scala and Java applications. For Scala, integrations with Scalatest and Specs2 are provided out-of-the-box and, for Java, there is integration with JUnit 4. For both languages, there is also integration with Selenium (software). SBT is used to run the tests and also to generate reports. It is also possible to use code coverage tools by using sbt plugins such as scoverage or jacoco4sbt.

Usage

In August 2011, Heroku announced native support for Play applications on its cloud computing platform.[24] This followed module-based support for Play 1.0 on Google App Engine, and documented support on Amazon Web Services.[25]

As of October 2013, the Play Framework was the most popular Scala project on GitHub.[26]

In July 2015, Play was the 3rd most popular Scala library in GitHub, based on 64,562 Libraries. 21.3% of the top Scala projects used Play as their framework of choice.[27]

Corporate users of the Play Framework have included Coursera, HuffPost, Hootsuite, Janrain, LinkedIn, and Connectifier.[28]

See also

Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

Literature

References

Page Template:Reflist/styles.css has no content.

  1. ^ Page Module:Citation/CS1/styles.css has no content."Playing with Play Framework for Java - @codemonkeyism". Codemonkeyism.com. 22 March 2010. Archived from the original on 29 May 2010. Retrieved 31 July 2018.
  2. ^ Page Module:Citation/CS1/styles.css has no content."Play framework in practice - Devoxx09 - Devoxx". 13 October 2009. Archived from the original on 2009-10-13. Retrieved 31 July 2018.
  3. ^ Page Module:Citation/CS1/styles.css has no content."playframework/twirl". GitHub. Retrieved 31 July 2018.
  4. ^ Page Module:Citation/CS1/styles.css has no content.Bort, Guillaume. "guillaume bort – software designer". guillaume.bort.fr. Retrieved 31 July 2018.
  5. ^ Page Module:Citation/CS1/styles.css has no content."Google Groups". groups.google.com. Retrieved 31 July 2018.
  6. ^ Page Module:Citation/CS1/styles.css has no content."Play!". 29 October 2007. Archived from the original on 2007-10-29. Retrieved 31 July 2018.
  7. ^ Page Module:Citation/CS1/styles.css has no content."~play-developers/play/1.0 : revision 1". Bazaar.launchpad.net. Retrieved 31 July 2018.
  8. ^ Page Module:Citation/CS1/styles.css has no content."Downloads". Playframework.org. Archived from the original on 17 January 2013. Retrieved 31 July 2018.
  9. ^ Page Module:Citation/CS1/styles.css has no content."releasenotes-1.1 - 1.1". Playframework.org. Archived from the original on 6 June 2012. Retrieved 31 July 2018.
  10. ^ Page Module:Citation/CS1/styles.css has no content."Modules". Playframework.org. Archived from the original on 4 April 2012. Retrieved 31 July 2018.
  11. ^ Page Module:Citation/CS1/styles.css has no content."releasenotes-1.2 - 1.2". Playframework.org. Archived from the original on 22 March 2012. Retrieved 31 July 2018.
  12. ^ Page Module:Citation/CS1/styles.css has no content."Philosophy - 2.0". Playframework.org. Archived from the original on 26 May 2012. Retrieved 31 July 2018.
  13. ^ Page Module:Citation/CS1/styles.css has no content."Introducing Typesafe Stack 2.0 - @lightbend". Blog.typesafe.com. Retrieved 31 July 2018.
  14. ^ Page Module:Citation/CS1/styles.css has no content."Highlights - 2.1.0". Playframework.com. Retrieved 31 July 2018.
  15. ^ Page Module:Citation/CS1/styles.css has no content."Highlights - 2.7.x". Playframework.com. Retrieved 3 March 2019.
  16. ^ Page Module:Citation/CS1/styles.css has no content."Highlights - 2.8.x". Playframework.com. Retrieved 29 February 2020.
  17. ^ Release 📣 Play 2.9.0 · playframework/playframework
  18. ^ Page Module:Citation/CS1/styles.css has no content."Highlights29 - 3.0.x". playframework.com. Retrieved 8 November 2023.
  19. ^ Release 📣 Play 3.0.0 · playframework/playframework
  20. ^ Page Module:Citation/CS1/styles.css has no content."Highlights30 - 3.0.x". playframework.com. Retrieved 8 November 2023.
  21. ^ Play! Framework Usability Script error: No such module "webarchive".
  22. ^ Page Module:Citation/CS1/styles.css has no content."Thomas Heute's Blog: Play Framework on JBoss AS 7 -JBoss Developer". community.jboss.org. Retrieved 31 July 2018.
  23. ^ Page Module:Citation/CS1/styles.css has no content."Play framework and async I/O". engineering.linkedin.com. Retrieved 31 July 2018.
  24. ^ Page Module:Citation/CS1/styles.css has no content."Play! on Heroku". Blog.heroku.com. 24 August 2016. Retrieved 31 July 2018.
  25. ^ Page Module:Citation/CS1/styles.css has no content."Play-ing with Amazon RDS". Ibm.com. 19 July 2011. Retrieved 31 July 2018.
  26. ^ Page Module:Citation/CS1/styles.css has no content."GitHub: Search stars>1". GitHub. Retrieved 5 October 2013.
  27. ^ Page Module:Citation/CS1/styles.css has no content."The Top 100 Scala Libraries in 2015 – Based on 64,562 GitHub Libraries>1". Archived from the original on 15 August 2015. Retrieved 19 July 2015.
  28. ^ Page Module:Citation/CS1/styles.css has no content.Inc, Lightbend. "Blog Posts | play-framework | @lightbend". Lightbend. Retrieved 2022-09-11. {{cite web}}: |last= has generic name (help)
  29. ^ Page Module:Citation/CS1/styles.css has no content."Introducing the Play Framework". The-play-book.co.uk. Archived from the original on 17 May 2014. Retrieved 31 July 2018.
  30. ^ Page Module:Citation/CS1/styles.css has no content."Play Framework Cookbook - PACKT Books". Packtpub.com. Archived from the original on 13 March 2014. Retrieved 31 July 2018.

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.