Play Framework - Play Framework

Play Framework
Play Framework logo.svg
Разработчики)Lightbend, Зенгулярность и сообщество
изначальный выпуск2007 (2007)
Стабильный выпуск
2.8.5 / 9 ноября 2020 г.; 34 дней назад (2020-11-09)[1]
РепозиторийPlay Репозиторий
Написано вScala
Доступно ванглийский
ТипФреймворк веб-приложений
ЛицензияЛицензия Apache 2.0
Интернет сайтигровая рамка.com

Play Framework является Открытый исходный код каркас веб-приложений который следует за модель – представление – контроллер (MVC) архитектурный образец. Это написано в Scala и может использоваться из других языков программирования, которые скомпилированы в JVM Байт-код, например Ява. Он направлен на оптимизацию производительности разработчиков за счет использования соглашение важнее конфигурации, перезагрузка горячего кода и отображение ошибок в браузере.[2]

Поддержка Scala язык программирования доступен с версии 1.1 фреймворка.[3] В версии 2.0 ядро ​​фреймворка было переписано на Scala. Сборка и развертывание перенесены на SBT, и шаблоны использовать Scala[4] вместо Apache Groovy.

История

Play был создан разработчиком программного обеспечения Гийомом Борт, когда он работал в Zengularity SA (ранее Zenexity).[5] Хотя ранние выпуски больше не доступны в Интернете, есть свидетельства существования Play еще в мае 2007 года.[6] В 2007 году предварительные версии проекта были доступны для загрузки с веб-сайта Zenexity.[7]

История версий
ВерсияДатаПримечания
Старая версия, больше не поддерживается: 1.0Май 2008 г.Первый опубликованный код для 1.0 появился на Панель запуска.[8] За этим последовал полный выпуск 1.0 в октябре 2009 года.[9]
Старая версия, больше не поддерживается: 1.1Ноябрь 2010 г.Выпущено после перехода с Launchpad на GitHub. Он включал миграцию из Apache MINA к JBoss Netty, Поддержка Scala, родной Стеклянная рыба контейнер, асинхронный веб-сервисы библиотека, OAuth поддерживать, HTTPS поддержка и другие возможности.[10]
Старая версия, больше не поддерживается: 1.2Апрель 2011 г.Он включал управление зависимостями с Apache Ivy, Поддержка для WebSocket, интегрированная миграция базы данных (возврат не реализован[11]), переход на База данных H2 в качестве базы данных разработки по умолчанию и другие функции.[12]
Старая версия, больше не поддерживается: 1.315 января 2015 г.обновлены библиотеки (например, netty, hibernate и т. д.), добавлена ​​поддержка нескольких баз данных и включено настраиваемое разрешение имен шаблонов.
Старая версия, больше не поддерживается: 1.430 октября 2015 г.Совместимость с Java 7 и удаленная поддержка Java 6. Добавлена ​​возможность определять включенные протоколы ssl.
Старая версия, больше не поддерживается: 1.529 сентября 2017 г.Обновился до Hibernate 5.x. Прекращена поддержка версии Java до версии 1.8 документация
Старая версия, больше не поддерживается: 2.013 марта 2012 г.Садек Дроби присоединился к Гийому Борту в конце 2011 года, чтобы создать Play 2.0.[13] в сочетании с Типы безопасны Стек 2.0.[14]
Старая версия, больше не поддерживается: 2.16 февраля 2013 г.Обновлен до Scala 2.10 и представил, среди других новых функций, модульность, новый JSON API, фильтры и поддержку RequireJS.[15]
Старая версия, больше не поддерживается: 2.220 сентября 2013 г.Обновленная поддержка SBT до 0,13, улучшенная поддержка буферизации, встроенная поддержка gzip и новые сцена и расстояние задачи с поддержкой собственной упаковки на нескольких платформах, таких как OS X (DMG), Linux (RPM, DEB) и Windows (MSI), а также zip-файлы.
Старая версия, больше не поддерживается: 2.330 мая 2014 г.Представляем команду Activator, улучшенный инструментарий для статических ресурсов, поддержку Java 8 и Scala 2.11, лучшую производительность, усовершенствование веб-служб и поддержку интеграции акторов и веб-сокетов.
Старая версия, больше не поддерживается: 2.426 мая 2015 годаС Внедрение зависимости из коробки возможность встраивать Play в другие приложения, улучшена поддержка Java 8, HikariCP в качестве пула соединений по умолчанию и улучшенных API тестирования.
Старая версия, больше не поддерживается: 2.529 марта 2016 г.Перешел с Iteratees на Акка Streams для всех асинхронных операций ввода-вывода и потоковой передачи пользовательские функциональные типы заменены на типы Java 8 (например, CompletionStage и Необязательный), представил эквивалентные Java API для функций, которые ранее существовали только в Scala API, таких как реализация фильтров и пользовательских парсеров тела, и с увеличением производительности на 20%.
Старая версия, больше не поддерживается: 2.623 июня 2017 г.С помощью Akka HTTP как бэкэнд сервера по умолчанию, экспериментальный HTTP / 2 поддержка, поддержка Scala 2.12, не более глобальное состояние под капотом, Веб-токен JSON формат для файлов cookie, улучшенная безопасность и улучшения конфигурации.
Старая версия, но все еще поддерживается: 2.71 февраля 2019 г.Поддержка Scala 2.13, поддержка Кофеин в качестве базовой реализации кеша обновлены HikariCP и Guice версии, улучшенные функции проверки формы и загрузки файлов.[16]
Текущая стабильная версия: 2.813 декабря 2019 г.,Поддержка Java 11, обновленный Akka, Jackson, поддержка источников предварительного поиска для результатов диапазона[17]
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск

Мотивация

Игра во многом вдохновлена ASP.NET MVC, Рубин на рельсах и Джанго и похож на это семейство фреймворков. Веб-приложения Play могут быть написаны на Scala или Java в среде, которая может быть менее Java Enterprise Edition -центрический. Play не использует ограничений Java EE. Это может упростить разработку Play по сравнению с другими платформами, ориентированными на Java.[18]

Хотя Play 1.x также может быть упакован как ВОЙНА файлы для распространения на стандартную Java EE серверы приложений,[19] Приложения Play 2.x теперь предназначены для запуска с использованием встроенного Akka HTTP или же Нетти исключительно веб-серверы.

Основные отличия от фреймворков Java

  • Без гражданства: Играть 2 полностью RESTful - нет сеанса Java EE на одно соединение.
  • Интегрированное модульное тестирование: JUnit и Селен поддержка включена в ядро.
  • API поставляется с большинством необходимых встроенных элементов.
  • Асинхронный ввод / вывод: благодаря использованию Akka HTTP в качестве веб-сервера, Play может обрабатывать длинные запросы асинхронно, а не связывать потоки HTTP, выполняя бизнес-логику, такую ​​как структуры Java EE, которые не используют асинхронную поддержку, предлагаемую Servlet 3.0.[20]
  • Модульная архитектура: как Ruby on Rails и Django, Play имеет концепцию модулей.
  • Встроенная поддержка Scala: Play 2 использует Scala внутри, но также предоставляет как Scala API, так и Java API, который намеренно немного отличается, чтобы соответствовать соглашениям Java, а Play полностью совместим с Java.

Фреймворк для тестирования

Play обеспечивает интеграцию с тестовыми платформами для модульное тестирование и функциональное тестирование для приложений Scala и Java. Для Scala интеграция с Scalatest и Specs2 поставляются "из коробки", а для Java существует интеграция с JUnit 4. Для обоих языков также есть интеграция с Селен (программное обеспечение). SBT используется для запуска тестов, а также для создания отчетов. Также можно использовать инструменты покрытия кода, используя плагины sbt, такие как охота или же jacoco4sbt.

использование

По состоянию на октябрь 2013 г., Play Framework - самый популярный проект Scala на GitHub.[21] В июле 2015 года Play была третьей по популярности библиотекой Scala в Github на основе 64 562 библиотек. 21,3% ведущих проектов Scala использовали Play в качестве фреймворка.[22]

В декабре 2010 г. электронная книга для платформы Play.[23] Впоследствии это было также опубликовано в печатная копия. В августе 2011 года вышла вторая книга, охватывающая более сложные и современные функции.[24]

В августе 2011 г. Heroku объявила о встроенной поддержке приложений Play на своем облачные вычисления Платформа.[25] Это следует за модульной поддержкой Play 1.0 (но не Play 2.x) на Google App Engine и документированная поддержка по Веб-сервисы Amazon.[26]

В июле 2013 г. Jelastic опубликовал руководство, показывающее поддержку Play 2 на своем облачные вычисления Платформа.[27]

Смотрите также

Литература

  • Питер Хилтон; Эрик Баккер и Франсиско Канедо (2013). Играть на Scala. Мэннинг. ISBN  9781617290794.
  • Энди Петрелла (2013). Обучение игре! Рамка 2. Packt Publishing. ISBN  978-1-78216-012-0.
  • Николя Леру; Ситсе де Капер (2014). Играть на Java. Мэннинг. ISBN  1617290904.
  • Жюльен Ришар-Фой (2014). Основы Play Framework. Packt Publishing. ISBN  1783982403.
  • Шити Саксена (2015). Освоение Play Framework для Scala. Packt Publishing. ISBN  1783983809.
  • Александр Рилсен; Джанкарло Индуктиво (2015). Поваренная книга Play Framework (2-е изд.). Packt Publishing. ISBN  1783982403.
  • ПремКумар Карунакаран (2020). Представляем Play Framework (2-е изд.). Апресс. ISBN  978-1-4842-5644-2.

Рекомендации

  1. ^ Играть в команду. "Воспроизвести журнал изменений". Получено 2020-06-04.
  2. ^ «Игра с Play Framework для Java - @codemonkeyism». Codemonkeyism.com. 22 марта 2010. Архивировано с оригинал 29 мая 2010 г.. Получено 31 июля 2018.
  3. ^ «Игровой фреймворк на практике - Devoxx09 - Devoxx». Web.archive.org. 13 октября 2009 г.. Получено 31 июля 2018.
  4. ^ "playframework / twirl". GitHub. Получено 31 июля 2018.
  5. ^ Борт, Гийом. "гийом борт - разработчик программного обеспечения". guillaume.bort.fr. Получено 31 июля 2018.
  6. ^ "Группы Google". groups.google.com. Получено 31 июля 2018.
  7. ^ "Играть в!". Web.archive.org. 29 октября 2007 г.. Получено 31 июля 2018.
  8. ^ "~ play-developers / play / 1.0: версия 1". Bazaar.launchpad.net. Получено 31 июля 2018.
  9. ^ "Загрузки". Playframework.org. Получено 31 июля 2018.
  10. ^ "Releasenotes-1.1 - 1.1". Playframework.org. Получено 31 июля 2018.
  11. ^ «Модули». Playframework.org. Получено 31 июля 2018.
  12. ^ "Releasenotes-1.2 - 1.2". Playframework.org. Получено 31 июля 2018.
  13. ^ «Философия - 2.0». Playframework.org. Получено 31 июля 2018.
  14. ^ "Представляем Typesafe Stack 2.0 - @lightbend". Blog.typesafe.com. Получено 31 июля 2018.
  15. ^ «Основные моменты - 2.1.0». Playframework.com. Получено 31 июля 2018.
  16. ^ «Лучшее - 2.7.х». Playframework.com. Получено 3 марта 2019.
  17. ^ «Лучшее - 2.8.х». Playframework.com. Получено 29 февраля 2020.
  18. ^ Играть в! Удобство использования фреймворка В архиве 2011-07-13 на Wayback Machine
  19. ^ "Блог Томаса Хьюта: Play Framework на JBoss AS 7 -JBoss Developer". community.jboss.org. Получено 31 июля 2018.
  20. ^ «Платформа воспроизведения и асинхронный ввод-вывод». engineering.linkedin.com. Получено 31 июля 2018.
  21. ^ "GitHub: Search stars> 1". Получено 5 октября 2013.
  22. ^ «100 лучших библиотек Scala в 2015 году - на основе 64 562 библиотек GitHub> 1». Получено 19 июля 2015.
  23. ^ «Представляем платформу Google Play». The-play-book.co.uk. Архивировано из оригинал 17 мая 2014 г.. Получено 31 июля 2018.
  24. ^ "Поваренная книга по платформе Google Play - книги PACKT". Packtpub.com. Архивировано из оригинал 13 марта 2014 г.. Получено 31 июля 2018.
  25. ^ "Играй! На Heroku". Blog.heroku.com. Получено 31 июля 2018.
  26. ^ «Играем с Amazon RDS». Ibm.com. 19 июля 2011 г.. Получено 31 июля 2018.
  27. ^ «Учебное пособие по развертыванию веб-приложений Play 2». Blog.jelastic.com. 2 июля 2013 г.. Получено 31 июля 2018.

внешняя ссылка