「Play Framework」の版間の差分

削除された内容 追加された内容
m 曖昧さ回避ページLaunchpad (曖昧さ回避)へのリンクを解消、リンク先をLaunchpad (プロジェクト管理システム)に変更(DisamAssist使用)
m編集の要約なし
27行目:
翌[[2008年]]5月になって、バージョン1.0の元となるコードが[[Launchpad (プロジェクト管理システム)|Launchpad]]にて公開された<ref>[http://bazaar.launchpad.net/~play-developers/play/1.0/revision/1 ~play-developers/play/1.0 : revision 1]</ref> 1.0が完全にリリースされるのは、[[2009年]]10月のことである<ref>[http://www.playframework.org/download Play framework - downloads]</ref>。
 
その後Launchpadから[[GitHub]]への移行を経て、[[2010年]]11月にPlay 1.1がリリースされた。1.1ではコンポーネントが{{仮リンク|Apache MINA|en|Apache MINA}}から{{仮リンク|Netty (ソフトウェア)|en|Netty (software)|label=JBoss Netty}}へと変更されており、またScala言語のサポートや、[[GlassFish]]コンテナへの対応、非同期[[Webサービス]]ライブラリ、[[OAuth]]認証、[[HTTPS]]のサポートなどが行われた<ref>[http://www.playframework.org/documentation/1.1/releasenotes-1.1 Play 1.1 -- Release notes]</ref>
 
[[2011年]]4月にリリースされたPlay 1.2では、依存性管理ツールである{{仮リンク|Apache Ivy|en|Apache Ivy}}が組み込まれるとともに、[[WebSocket]]のサポートや、[[データベース|DB]][[データ移行|マイグレーション]]の統合(ただしリバージョンは未対応<ref>[http://www.playframework.org/modules/migrate-1.4/home Community Contributed Extensions]</ref>)、[[H2 Database]]への変更などが行われた<ref>[http://www.playframework.org/documentation/1.2/releasenotes-1.2 Play 1.2 -- Release notes]</ref>。
38行目:
 
== 特徴 ==
Play Frameworkは、[[Ruby on Rails]]と[[Django]]から大きな影響を受けた、これらと似た同種のフレームワークである。PlayのWebアプリケーションはJava環境で動作するが、Java標準のWebアプリケーション仕様である[[Java Platform, Enterprise Edition|JavaJakarta EE]]の中核機能は必要としない。PlayはJavaJakarta EEの仕様に準拠しないが、その代わりにJavaJakarta EE準拠のプラットフォームと比較してシンプルに開発を行うことができる<ref>[http://www.lunatech-research.com/archives/2010/03/15/play-framework-usability Play! Framework Usability]</ref>
 
Play Frameworkのアプリケーションは組み込みの{{仮リンク|Netty (ソフトウェア)|en|Netty (software)|label=Netty}} Webサーバーを使用して実行するよう設計されている。しかし、開発したアプリケーションを[[WAR (アーカイバ)|WAR]]パッケージにまとめ、Java EEの[[アプリケーションサーバ]]で動作させることも可能である<ref>[http://community.jboss.org/blogs/thomas.heute/2011/06/29/play-framework-on-jboss-as-7 Play Framework on JBoss AS 7]</ref>
 
== 他のフレームワークとの比較 ==
他のJavaフレームワークと比べると、以下のような特徴を持つ
* ステートレス: Play 2は完全に[[Representational State Transfer|RESTful]]である。Java EEのように接続ごとの[[セッション]]を利用しない。
* 自動テストの統合: [[JUnit]], [[Selenium (ソフトウェア)|Selenium]]のサポートを含む。
* 主に必要とされる[[アプリケーションプログラミングインタフェース|API]]は標準で組み込まれている。
* [[メソッド (計算機科学)|静的メソッド]]: [[Model View Controller|コントローラ]]の全ての開始点はstatic(Scalaの場合はfunction)として宣言する。ただしPlay 2.1以降はそれ以外の形式もサポートされている。
* [[非同期IO]]: WebサーバーとしてNettyを使用することから、Playは非同期的に大きなリクエストを処理できる。この結果、HTTPスレッド数以上の処理を実行することができる。JavaJakarta EEでは、[[Java Servlet|Servlet]] 3.0までこうした非同期処理はサポートされていなかった<ref>[http://engineering.linkedin.com/34/play-framework-and-async-io Play framework and async I/O]</ref>
* モジュラー構造: RailsやDjangoのように、Playはモジュール構造を採用している。
* Scala言語のサポート: Play 2は内部的にScalaを使用しており、ScalaのAPIとJavaのAPI双方を公開している。Javaとも完全な互換性がある。