Игровая платформа
Разработчик(и) | Сообщество |
---|---|
Первоначальный выпуск | 2007 |
Стабильная версия | 3.0.3 [1] / 7 мая 2024 г |
Репозиторий | Воспроизвести репозиторий |
Написано в | Скала |
Доступно в | Английский |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | игровая платформа |
Play Framework — это с открытым исходным кодом платформа веб-приложений , которая соответствует модель-представление-контроллер (MVC) архитектурному шаблону . Он написан на Scala и может использоваться с другими языками программирования, скомпилированными в JVM байт-код , например Java . Он направлен на оптимизацию производительности разработчиков за счет использования соглашений о конфигурации , горячей перезагрузки кода и отображения ошибок в браузере. [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 появился на Launchpad . [8] За этим последовал полноценный выпуск 1.0 в октябре 2009 года. [9] |
1.1. | ноябрь 2010 г. | Выпущен после перехода с Launchpad на GitHub . Он включал миграцию с Apache MINA на JBoss Netty , поддержку Scala, собственный контейнер GlassFish , библиотеку асинхронных веб-сервисов , OAuth поддержку , поддержку HTTPS и другие функции. [10] |
1.2. | апрель 2011 г. | В него входило управление зависимостями с помощью Apache Ivy , поддержка WebSocket , интегрированная миграция баз данных (реверсия не была реализована). [11] ), переключение на базу данных H2 в качестве базы данных разработки по умолчанию и другие функции. [12] |
1.3. | 15 января 2015 г. | обновлены библиотеки (ao netty, hibernate и т. д.), добавлена поддержка нескольких баз данных и включено настраиваемое разрешение имен шаблонов. |
1.4. | 30 октября 2015 г. | Совместим с Java 7 и удалена поддержка Java 6. Добавлена возможность определять включенные протоколы SSL. |
1.5. | 29 сентября 2017 г. | Обновлен до Hibernate 5.x. Прекращена поддержка версий Java до 1.8. |
1.6. | 15 марта 2021 г. | Совместимость с Java 14, библиотеки обновлены. |
1.7. | 3 апреля 2022 г. | Совместимость с Java 17, библиотеки обновлены, поддержка версии Java до 11 прекращена, скрипты Play обновлены до Python 3. |
2.0. | 13 марта 2012 г. | Садек Дроби присоединился к Гийому Борту в конце 2011 года для создания Play 2.0. [13] в сочетании со Typesafe 2.0. стеком [14] |
2.1. | 6 февраля 2013 г. | Обновлен до Scala 2.10 и, среди других новых функций, представлен модульность, новый API JSON, фильтры и поддержка RequireJS. [15] |
2.2. | 20 сентября 2013 г. | Обновлена поддержка SBT до версии 0.13, улучшена поддержка буферизации, встроена поддержка gzip и новые возможности. stage и dist задачи с поддержкой встроенной упаковки на нескольких платформах, таких как 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 на Akka Streams для всех асинхронных операций ввода-вывода и потоковой передачи, заменены пользовательские функциональные типы типами Java 8 (такими как CompletionStage и Optional ), представил эквивалентные Java API для функций, которые ранее существовали только в Scala API, таких как реализация фильтров и пользовательских анализаторов тела, а также с увеличением производительности на 20%. |
2.6. | 23 июня 2017 г. | Использование Akka HTTP в качестве серверной части сервера по умолчанию, экспериментальная HTTP/2 поддержка состояния , поддержка Scala 2.12, отсутствие глобального внутреннего , формат JSON Web Token для файлов cookie, улучшенная безопасность и улучшения конфигурации. |
2.7. | 1 февраля 2019 г. | Поддержка Scala 2.13, поддержка Caffeine в качестве базовой реализации кэша, обновленные версии HikariCP и Guice , улучшенные функции проверки формы и загрузки файлов. [16] |
2.8. | 13 декабря 2019 г. | Поддержка Java 11, обновлен Akka, Jackson, поддержка источников предварительного поиска для результатов диапазона. [17] |
2.9. | 25 октября 2023 г. [18] | Поддержка Scala 3, Java 17 и Java 21. [19] |
3.0. | 25 октября 2023 г. [20] | Поскольку Akka больше не является открытым исходным кодом, Play перешла с Akka на Apache Pekko. [21] |
Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия |
Мотивация
[ редактировать ]Play во многом вдохновлен ASP.NET MVC , Ruby on Rails и Django и похож на это семейство фреймворков. Веб-приложения Play можно писать на Scala или Java в среде, которая может быть менее ориентирована на Java Enterprise Edition . Play не использует ограничений Java EE. Это может упростить разработку Play по сравнению с другими платформами, ориентированными на Java. [22]
Хотя Play 1.x также можно упаковать в виде файлов WAR для распространения на стандартные серверы приложений Java EE , [23] Приложения Play 2.x теперь предназначены для запуска исключительно с использованием встроенных веб-серверов Akka HTTP или Netty .
Основные отличия от фреймворков Java
[ редактировать ]- Без сохранения состояния : Play 2 полностью RESTful — для каждого соединения нет сеанса Java EE.
- Интегрированное модульное тестирование: поддержка JUnit и Selenium включена в ядро.
- API поставляется со встроенными наиболее необходимыми элементами.
- Асинхронный ввод-вывод : благодаря использованию Akka HTTP в качестве веб-сервера Play может обслуживать длинные запросы асинхронно, вместо того, чтобы связывать потоки HTTP, выполняющие бизнес-логику, например, платформы Java EE, которые не используют асинхронную поддержку, предлагаемую Servlet 3.0. [24]
- Модульная архитектура: как и Ruby on Rails и Django, Play использует концепцию модулей.
- Встроенная поддержка Scala: Play 2 использует Scala внутри, но также предоставляет как API Scala, так и API Java, который намеренно немного отличается, чтобы соответствовать соглашениям Java, и Play полностью совместим с Java.
Платформа тестирования
[ редактировать ]Play обеспечивает интеграцию с тестовыми средами для модульного и функционального тестирования приложений Scala и Java. Для Scala интеграция с Scalatest и Specs2 предусмотрена «из коробки», а для Java предусмотрена интеграция с JUnit 4. Для обоих языков также предусмотрена интеграция с Selenium (программным обеспечением) . SBT используется для запуска тестов, а также для создания отчетов. Также можно использовать инструменты покрытия кода с помощью плагинов sbt, таких как scoverage или jacoco4sbt .
Использование
[ редактировать ]В августе 2011 года Heroku объявила о встроенной поддержке приложений Play на своей платформе облачных вычислений . [25] Это последовало за модульной поддержкой Play 1.0 в Google App Engine и документированной поддержкой в Amazon Web Services . [26]
По состоянию на октябрь 2013 г. [update]Play Framework был самым популярным проектом Scala на GitHub . [27]
В июле 2015 года Play была третьей по популярности библиотекой Scala на GitHub на основе 64 562 библиотек. 21,3% лучших проектов Scala использовали Play в качестве фреймворка. [28]
Корпоративными пользователями Play Framework являются Coursera , HuffPost , Hootsuite , Janrain , LinkedIn и Connectifier . [29]
См. также
[ редактировать ]Литература
[ редактировать ]- Уэйн Эллис (2010). Знакомство с игровой платформой. [30]
- Александр Рилсен (2011). Поваренная книга Play Framework. Пакт Паблишинг. ISBN 1849515522 . [31]
- Питер Хилтон; Эрик Баккер и Франсиско Канедо (2013). Играйте за Скалу . Мэннинг. ISBN 9781617290794 .
- Энди Петрелла (2013). Учимся играть! Рамки 2 . Пакт Паблишинг. ISBN 978-1-78216-012-0 .
- Николя Леру; Ситсе де Капер (2014). Играйте на Яву . Мэннинг. ISBN 978-1617290909 .
- Жюльен Ришар-Фой (2014). Играйте в Основы платформы . Пакт Паблишинг. ISBN 978-1783982400 .
- Шити Саксена (2015). Освоение Play Framework для Scala . Пакт Паблишинг. ISBN 978-1783983803 .
- Александр Рилсен; Джанкарло Индуктиво (2015). Поваренная книга Play Framework (2-е изд.). Пакт Паблишинг. ISBN 978-1783982400 .
- Прем Кумар Карунакаран (2020). Знакомство с игровой платформой (2-е изд.). Апресс. ISBN 978-1-4842-5644-2 .
Ссылки
[ редактировать ]- ^ «Выпуск 3.0.3» . 7 мая 2024 г. Проверено 9 мая 2024 г.
- ^ «Игра с Play Framework для Java — @codemonkeyism» . Codemonkeyism.com . 22 марта 2010 г. Архивировано из оригинала 29 мая 2010 г. Проверено 31 июля 2018 г.
- ^ «Игровой фреймворк на практике — Devoxx09 — Devoxx» . 13 октября 2009 г. Архивировано из оригинала г. 13 октября 2009 Проверено 31 июля 2018 г.
- ^ «playframework/twirl» . Гитхаб . Проверено 31 июля 2018 г.
- ^ Борт, Гийом. «Гийом Борт – дизайнер программного обеспечения» . guillaume.bort.fr . Проверено 31 июля 2018 г.
- ^ «Группы Google» . groups.google.com . Проверено 31 июля 2018 г.
- ^ "Играть!" . 29 октября 2007 г. Архивировано из оригинала г. 29 октября 2007 Проверено 31 июля 2018 г.
- ^ "~play-developers/play/1.0: версия 1" . Базар.launchpad.net . Проверено 31 июля 2018 г.
- ^ «Загрузки» . Playframework.org . Архивировано из оригинала 17 января 2013 года . Проверено 31 июля 2018 г.
- ^ "releasenotes-1.1 - 1.1" . Playframework.org . Архивировано из оригинала 6 июня 2012 года . Проверено 31 июля 2018 г.
- ^ «Модули» . Playframework.org . Архивировано из оригинала 4 апреля 2012 года . Проверено 31 июля 2018 г.
- ^ "releasenotes-1.2 - 1.2" . Playframework.org . Архивировано из оригинала 22 марта 2012 года . Проверено 31 июля 2018 г.
- ^ «Философия – 2.0» . Playframework.org . Архивировано из оригинала 26 мая 2012 года . Проверено 31 июля 2018 г.
- ^ «Представляем Typesafe Stack 2.0 — @lightbend» . Блог.typesafe.com . Проверено 31 июля 2018 г.
- ^ «Основные моменты – 2.1.0» . Playframework.com . Проверено 31 июля 2018 г.
- ^ «Основные моменты — 2.7.х» . Playframework.com . Проверено 3 марта 2019 г.
- ^ «Основные моменты — 2.8.х» . Playframework.com . Проверено 29 февраля 2020 г.
- ^ Релиз 📣 Play 2.9.0 · playframework/playframework
- ^ "Highlights29 - 3.0.x" . playframework.com . Проверено 8 ноября 2023 г.
- ^ Релиз 📣 Play 3.0.0 · playframework/playframework
- ^ «Основные моменты30 — 3.0.x» . playframework.com . Проверено 8 ноября 2023 г.
- ^ Играйте! Удобство использования платформы. Архивировано 13 июля 2011 г. на Wayback Machine.
- ^ «Блог Томаса Хойта: Play Framework на JBoss AS 7 — разработчик JBoss» . Community.jboss.org . Проверено 31 июля 2018 г.
- ^ «Play Framework и асинхронный ввод-вывод» . Engineering.linkedin.com . Проверено 31 июля 2018 г.
- ^ «Играй! на Heroku» . Блог.heroku.com . Проверено 31 июля 2018 г.
- ^ «Играем с Amazon RDS» . IBM.com . 19 июля 2011 года . Проверено 31 июля 2018 г.
- ^ «GitHub: Поиск звезд>1» . Гитхаб . Проверено 5 октября 2013 г.
- ^ «100 лучших библиотек Scala в 2015 году — на основе 64 562 библиотек GitHub>1» . Архивировано из оригинала 15 августа 2015 года . Проверено 19 июля 2015 г.
- ^ Инк, Лайтбенд. «Сообщения в блоге | play-framework | @lightbend» . Изгиб света . Проверено 11 сентября 2022 г.
{{cite web}}
:|last=
имеет общее имя ( справка ) - ^ «Представляем игровую платформу» . The-play-book.co.uk . Архивировано из оригинала 17 мая 2014 года . Проверено 31 июля 2018 г.
- ^ «Поваренная книга Play Framework — PACKT Books» . Packtpub.com . Архивировано из оригинала 13 марта 2014 года . Проверено 31 июля 2018 г.