Play Framework - Play Framework
Эта статья слишком полагается на Рекомендации к основные источники.Сентябрь 2010 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Lightbend, Зенгулярность и сообщество |
---|---|
изначальный выпуск | 2007 |
Стабильный выпуск | 2.8.5 / 9 ноября 2020 г.[1] |
Репозиторий | Play Репозиторий |
Написано в | Scala |
Доступно в | английский |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | игровая рамка |
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.3 | 15 января 2015 г. | обновлены библиотеки (например, netty, hibernate и т. д.), добавлена поддержка нескольких баз данных и включено настраиваемое разрешение имен шаблонов. |
1.4 | 30 октября 2015 г. | Совместимость с Java 7 и удаленная поддержка Java 6. Добавлена возможность определять включенные протоколы ssl. |
1.5 | 29 сентября 2017 г. | Обновился до Hibernate 5.x. Прекращена поддержка версии Java до версии 1.8 документация |
2.0 | 13 марта 2012 г. | Садек Дроби присоединился к Гийому Борту в конце 2011 года, чтобы создать Play 2.0.[13] в сочетании с Типы безопасны Стек 2.0.[14] |
2.1 | 6 февраля 2013 г. | Обновлен до Scala 2.10 и представил, среди других новых функций, модульность, новый JSON API, фильтры и поддержку RequireJS.[15] |
2.2 | 20 сентября 2013 г. | Обновленная поддержка SBT до 0,13, улучшенная поддержка буферизации, встроенная поддержка gzip и новые сцена и расстояние задачи с поддержкой собственной упаковки на нескольких платформах, таких как OS X (DMG), Linux (RPM, DEB) и Windows (MSI), а также zip-файлы. |
2.3 | 30 мая 2014 г. | Представляем команду Activator, улучшенный инструментарий для статических ресурсов, поддержку Java 8 и Scala 2.11, лучшую производительность, усовершенствование веб-служб и поддержку интеграции акторов и веб-сокетов. |
2.4 | 26 мая 2015 года | С Внедрение зависимости из коробки возможность встраивать Play в другие приложения, улучшена поддержка Java 8, HikariCP в качестве пула соединений по умолчанию и улучшенных API тестирования. |
2.5 | 29 марта 2016 г. | Перешел с Iteratees на Акка Streams для всех асинхронных операций ввода-вывода и потоковой передачи пользовательские функциональные типы заменены на типы Java 8 (например, CompletionStage и Необязательный ), представил эквивалентные Java API для функций, которые ранее существовали только в Scala API, таких как реализация фильтров и пользовательских парсеров тела, и с увеличением производительности на 20%. |
2.6 | 23 июня 2017 г. | С помощью Akka HTTP как бэкэнд сервера по умолчанию, экспериментальный HTTP / 2 поддержка, поддержка Scala 2.12, не более глобальное состояние под капотом, Веб-токен JSON формат для файлов cookie, улучшенная безопасность и улучшения конфигурации. |
2.7 | 1 февраля 2019 г. | Поддержка Scala 2.13, поддержка Кофеин в качестве базовой реализации кеша обновлены HikariCP и Guice версии, улучшенные функции проверки формы и загрузки файлов.[16] |
2.8 | 13 декабря 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.
Рекомендации
- ^ Играть в команду. "Воспроизвести журнал изменений". Получено 2020-06-04.
- ^ «Игра с Play Framework для Java - @codemonkeyism». Codemonkeyism.com. 22 марта 2010. Архивировано с оригинал 29 мая 2010 г.. Получено 31 июля 2018.
- ^ «Игровой фреймворк на практике - Devoxx09 - Devoxx». Web.archive.org. 13 октября 2009 г.. Получено 31 июля 2018.
- ^ "playframework / twirl". GitHub. Получено 31 июля 2018.
- ^ Борт, Гийом. "гийом борт - разработчик программного обеспечения". guillaume.bort.fr. Получено 31 июля 2018.
- ^ "Группы Google". groups.google.com. Получено 31 июля 2018.
- ^ "Играть в!". Web.archive.org. 29 октября 2007 г.. Получено 31 июля 2018.
- ^ "~ play-developers / play / 1.0: версия 1". Bazaar.launchpad.net. Получено 31 июля 2018.
- ^ "Загрузки". Playframework.org. Получено 31 июля 2018.
- ^ "Releasenotes-1.1 - 1.1". Playframework.org. Получено 31 июля 2018.
- ^ «Модули». Playframework.org. Получено 31 июля 2018.
- ^ "Releasenotes-1.2 - 1.2". Playframework.org. Получено 31 июля 2018.
- ^ «Философия - 2.0». Playframework.org. Получено 31 июля 2018.
- ^ "Представляем Typesafe Stack 2.0 - @lightbend". Blog.typesafe.com. Получено 31 июля 2018.
- ^ «Основные моменты - 2.1.0». Playframework.com. Получено 31 июля 2018.
- ^ «Лучшее - 2.7.х». Playframework.com. Получено 3 марта 2019.
- ^ «Лучшее - 2.8.х». Playframework.com. Получено 29 февраля 2020.
- ^ Играть в! Удобство использования фреймворка В архиве 2011-07-13 на Wayback Machine
- ^ "Блог Томаса Хьюта: Play Framework на JBoss AS 7 -JBoss Developer". community.jboss.org. Получено 31 июля 2018.
- ^ «Платформа воспроизведения и асинхронный ввод-вывод». engineering.linkedin.com. Получено 31 июля 2018.
- ^ "GitHub: Search stars> 1". Получено 5 октября 2013.
- ^ «100 лучших библиотек Scala в 2015 году - на основе 64 562 библиотек GitHub> 1». Получено 19 июля 2015.
- ^ «Представляем платформу Google Play». The-play-book.co.uk. Архивировано из оригинал 17 мая 2014 г.. Получено 31 июля 2018.
- ^ "Поваренная книга по платформе Google Play - книги PACKT". Packtpub.com. Архивировано из оригинал 13 марта 2014 г.. Получено 31 июля 2018.
- ^ "Играй! На Heroku". Blog.heroku.com. Получено 31 июля 2018.
- ^ «Играем с Amazon RDS». Ibm.com. 19 июля 2011 г.. Получено 31 июля 2018.
- ^ «Учебное пособие по развертыванию веб-приложений Play 2». Blog.jelastic.com. 2 июля 2013 г.. Получено 31 июля 2018.