Play Framework es un marco de aplicación web de código abierto que sigue el patrón arquitectónico modelo-vista-controlador (MVC) . Está escrito en Scala y se puede utilizar desde otros lenguajes de programación que se compilan en JVM Bytecode , por ejemplo, Java . Su objetivo es optimizar la productividad del desarrollador mediante el uso de la convención sobre la configuración , la recarga de código activo y la visualización de errores en el navegador. [2]
Desarrollador (es) | Lightbend , Zengularity y la comunidad |
---|---|
Versión inicial | 2007 |
Lanzamiento estable | 2.8.8 [1] / 8 de abril de 2021 |
Repositorio | Repositorio de reproducción |
Escrito en | Scala |
Disponible en | inglés |
Tipo | Marco de aplicación web |
Licencia | Licencia Apache 2.0 |
Sitio web | playframework |
El soporte para el lenguaje de programación Scala ha estado disponible desde la versión 1.1 del marco. [3] En la versión 2.0, el núcleo del framework se reescribió en Scala. La compilación y la implementación se migraron a SBT y las plantillas utilizan Scala [4] en lugar de Apache Groovy .
Historia
Play fue creado por el desarrollador de software Guillaume Bort, mientras trabajaba en Zengularity SA (antes Zenexity). [5] Aunque las primeras versiones ya no están disponibles en línea, hay evidencia de que Play existía desde mayo de 2007. [6] En 2007, las versiones preliminares del proyecto estaban disponibles para descargar desde el sitio web de Zenexity. [7]
Versión | Fecha | Notas |
---|---|---|
1.0 | Mayo de 2008 | El primer código publicado para 1.0 apareció en Launchpad . [8] A esto le siguió una versión 1.0 completa en octubre de 2009. [9] |
1.1 | Noviembre de 2010 | Publicado después de pasar de Launchpad a GitHub . Incluyó una migración de Apache MINA a JBoss Netty , compatibilidad con Scala, contenedor GlassFish nativo , una biblioteca de servicios web asíncrona , compatibilidad con OAuth , compatibilidad con HTTPS y otras características. [10] |
1.2 | Abril de 2011 | Incluyó gestión de dependencias con Apache Ivy , soporte para WebSocket , migración de base de datos integrada (no se implementó la reversión [11] ), un cambio a la base de datos H2 como base de datos de desarrollo predeterminada y otras características. [12] |
1.3 | 15 de enero de 2015 | bibliotecas actualizadas (ao netty, hibernate, etc.), agregaron soporte para múltiples bases de datos e incluyeron resolución de nombres de plantillas personalizables. |
1.4 | 30 de octubre de 2015 | Compatible con Java 7 y se eliminó el soporte para Java 6. Se agregó la capacidad de definir protocolos SSL habilitados. |
1,5 | 29 de septiembre de 2017 | Actualizado a Hibernate 5.x. Soporte eliminado para la versión de java anterior a la documentación 1.8 |
2.0 | 13 de marzo de 2012 | Sadek Drobi se unió a Guillaume Bort a finales de 2011 para crear Play 2.0 [13] junto con Typesafe Stack 2.0. [14] |
2.1 | 6 de febrero de 2013 | Se actualizó a Scala 2.10 e introdujo, entre otras características nuevas, modularización, una nueva API JSON, filtros y compatibilidad con RequireJS. [15] |
2.2 | 20 de septiembre de 2013 | Soporte actualizado para SBT a 0.13, mejor soporte para almacenamiento en búfer, soporte integrado para gzip y tareas nuevas stage y dist con soporte para empaquetado nativo en varias plataformas como OS X (DMG), Linux (RPM, DEB) y Windows (MSI) como así como archivos zip. |
2.3 | 30 de mayo de 2014 | Presentamos el comando Activator, mejores herramientas para activos estáticos, soporte para Java 8 y Scala 2.11, mejor rendimiento, mejora del servicio web y soporte para integrar Actors y Web Sockets. |
2.4 | 26 de mayo de 2015 | Con la inyección de dependencias lista para usar , la posibilidad de incrustar Play dentro de otras aplicaciones, compatibilidad mejorada con Java 8, HikariCP como grupo de conexiones predeterminado y mejores API de prueba. |
2.5 | 29 de marzo de 2016 | Se cambió de Iteratees a Akka Streams para todas las E / S asíncronas y la transmisión, se reemplazaron los tipos funcionales personalizados con tipos de Java 8 (como CompletionStage y Optional ), se introdujeron API de Java equivalentes para características que anteriormente solo existían en la API de Scala, como la implementación de filtros y analizadores corporales personalizados. y con un aumento del rendimiento del 20%. |
2.6 | 23 de junio de 2017 | Uso de Akka HTTP como backend del servidor predeterminado, soporte experimental HTTP / 2 , soporte Scala 2.12, no más estado global bajo el capó, formato JSON Web Token para cookies, seguridad mejorada y mejoras de configuración. |
2,7 | 1 de febrero de 2019 | Soporte de Scala 2.13, soporte para Caffeine como implementación de caché subyacente, versiones actualizadas de HikariCP y Guice , validación de formularios mejorada y funciones de carga de archivos. [dieciséis] |
2.8 | 13 de diciembre de 2019 | Compatibilidad con Java 11, Akka actualizado, Jackson, compatibilidad con fuentes de búsqueda previa para resultados de rango [17] |
Versión antigua Versión anterior, aún mantenida Ultima versión Última versión de vista previa |
Motivación
Play está fuertemente inspirado en ASP.NET MVC , Ruby on Rails y Django y es similar a esta familia de frameworks. Las aplicaciones web de Play se pueden escribir en Scala o Java, en un entorno que puede ser menos centrado en Java Enterprise Edition . Play no utiliza restricciones de Java EE. Esto puede hacer que Play sea más sencillo de desarrollar en comparación con otras plataformas centradas en Java. [18]
Aunque Play 1.x también podría empaquetarse como archivos WAR para distribuirse a servidores de aplicaciones Java EE estándar , [19] las aplicaciones Play 2.x ahora están diseñadas para ejecutarse utilizando los servidores web incorporados Akka HTTP o Netty exclusivamente.
Principales diferencias con los marcos de Java
- Sin estado : Play 2 es completamente RESTful : no hay sesión Java EE por conexión.
- Pruebas unitarias integradas: el soporte para JUnit y Selenium está incluido en el núcleo.
- La API viene con la mayoría de los elementos necesarios integrados.
- E / S asíncrona : debido al uso de Akka HTTP como su servidor web, Play puede atender solicitudes largas de forma asíncrona en lugar de atar subprocesos HTTP con lógica empresarial como los marcos Java EE que no utilizan el soporte asíncrono ofrecido por Servlet 3.0. [20]
- Arquitectura modular: como Ruby on Rails y Django, Play viene con el concepto de módulos.
- Soporte nativo de Scala: Play 2 usa Scala internamente pero también expone tanto una API de Scala como una API de Java que es deliberadamente ligeramente diferente para encajar con las convenciones de Java, y Play es completamente interoperable con Java.
Marco de prueba
Play proporciona integración con marcos de prueba para pruebas unitarias y pruebas funcionales para aplicaciones Scala y Java. Para Scala, las integraciones con Scalatest y Specs2 se proporcionan listas para usar y, para Java, hay integración con JUnit 4. Para ambos lenguajes, también hay integración con Selenium (software) . SBT se utiliza para ejecutar las pruebas y también para generar informes. También es posible utilizar herramientas de cobertura de código mediante complementos de sbt como scoverage o jacoco4sbt .
Uso
En diciembre de 2010, se lanzó el primer libro electrónico para el marco de Play. [21] Esto también se publicó posteriormente en papel .
En agosto de 2011, se publicó un segundo libro, que cubre características más complejas y modernas. [22] En agosto de 2011, Heroku anunció soporte nativo para aplicaciones Play en su plataforma de computación en la nube . [23] Esto sigue al soporte basado en módulos para Play 1.0 (pero no a Play 2.x) en Google App Engine , y al soporte documentado en Amazon Web Services . [24]
En julio de 2013, Jelastic publicó un tutorial que mostraba el soporte para Play 2 en su plataforma de computación en la nube . [25]
En julio de 2015, Play fue la tercera biblioteca Scala más popular en Github, basada en 64.562 bibliotecas. El 21,3% de los principales proyectos de Scala utilizaron Play como su marco de elección. [26]
A octubre de 2013[actualizar], Play Framework es el proyecto Scala más popular en GitHub . [27]
Ver también
- Akka (caja de herramientas)
- Ebean
- Netty (software)
- Scala (lenguaje de programación)
Literatura
- Peter Hilton; Erik Bakker y Francisco Canedo (2013). Juega para Scala . Manning. ISBN 9781617290794.
- Andy Petrella (2013). ¡Aprendiendo a jugar! Marco 2 . Packt Publishing. ISBN 978-1-78216-012-0.
- Nicolas Leroux; Sietse de Kaper (2014). Juega para Java . Manning. ISBN 978-1617290909.
- Julien Richard-Foy (2014). Juega Framework Essentials . Packt Publishing. ISBN 978-1783982400.
- Shiti Saxena (2015). Dominar Play Framework para Scala . Packt Publishing. ISBN 978-1783983803.
- Alexander Reelsen; Giancarlo Inductivo (2015). Play Framework Cookbook (2ª ed.). Packt Publishing. ISBN 978-1783982400.
- PremKumar Karunakaran (2020). Presentación de Play Framework (2ª ed.). Presione. ISBN 978-1-4842-5644-2.
Referencias
- ^ "Versión 2.8.8" . 8 de abril de 2021 . Consultado el 16 de abril de 2021 .
- ^ "Jugando con Play Framework para Java - @codemonkeyism" . Codemonkeyism.com . 22 de marzo de 2010. Archivado desde el original el 29 de mayo de 2010 . Consultado el 31 de julio de 2018 .
- ^ "Marco de juego en la práctica - Devoxx09 - Devoxx" . 13 de octubre de 2009. Archivado desde el original el 13 de octubre de 2009 . Consultado el 31 de julio de 2018 .
- ^ "playframework / twirl" . GitHub . Consultado el 31 de julio de 2018 .
- ^ Bort, Guillaume. "guillaume bort - diseñador de software" . guillaume.bort.fr . Consultado el 31 de julio de 2018 .
- ^ "Grupos de Google" . groups.google.com . Consultado el 31 de julio de 2018 .
- ^ "¡Tocar!" . 29 de octubre de 2007. Archivado desde el original el 29 de octubre de 2007 . Consultado el 31 de julio de 2018 .
- ^ "~ play-developers / play / 1.0: revisión 1" . Bazaar.launchpad.net . Consultado el 31 de julio de 2018 .
- ^ "Descargas" . Playframework.org . Consultado el 31 de julio de 2018 .
- ^ "releasenotes-1.1 - 1.1" . Playframework.org . Consultado el 31 de julio de 2018 .
- ^ "Módulos" . Playframework.org . Consultado el 31 de julio de 2018 .
- ^ "releasenotes-1.2 - 1.2" . Playframework.org . Consultado el 31 de julio de 2018 .
- ^ "Filosofía - 2.0" . Playframework.org . Consultado el 31 de julio de 2018 .
- ^ "Presentamos Typesafe Stack 2.0 - @lightbend" . Blog.typesafe.com . Consultado el 31 de julio de 2018 .
- ^ "Aspectos destacados - 2.1.0" . Playframework.com . Consultado el 31 de julio de 2018 .
- ^ "Aspectos destacados - 2.7.x" . Playframework.com . Consultado el 3 de marzo de 2019 .
- ^ "Aspectos destacados - 2.8.x" . Playframework.com . Consultado el 29 de febrero de 2020 .
- ^ ¡Juega! Framework usabilidad Archivado el 13 de julio de 2011 en la Wayback Machine.
- ^ "Blog de Thomas Heute: Play Framework en JBoss AS 7 -JBoss Developer" . community.jboss.org . Consultado el 31 de julio de 2018 .
- ^ "Play framework y async I / O" . engineering.linkedin.com . Consultado el 31 de julio de 2018 .
- ^ "Presentación de Play Framework" . The-play-book.co.uk . Archivado desde el original el 17 de mayo de 2014 . Consultado el 31 de julio de 2018 .
- ^ "Play Framework Cookbook - PACKT Books" . Packtpub.com . Archivado desde el original el 13 de marzo de 2014 . Consultado el 31 de julio de 2018 .
- ^ "¡Juega! En Heroku" . Blog.heroku.com . Consultado el 31 de julio de 2018 .
- ^ "Jugar con Amazon RDS" . Ibm.com . 19 de julio de 2011 . Consultado el 31 de julio de 2018 .
- ^ "Tutorial de implementación de aplicaciones web de Play 2" . Blog.jelastic.com . 2 de julio de 2013 . Consultado el 31 de julio de 2018 .
- ^ "Las 100 mejores bibliotecas de Scala en 2015: basadas en 64 562 bibliotecas de GitHub> 1" . Consultado el 19 de julio de 2015 .
- ^ "GitHub: Buscar estrellas> 1" . Consultado el 5 de octubre de 2013 .
enlaces externos
- Página de inicio de Play Framework