[](http://2.bp.blogspot.com/-jhvha3uwV_U/ThfaiWRMlZI/AAAAAAAAB7Q/EyIiGiHvdt0/s1600/ae_gwt_java-499x386.png)
今年自己在網站開發方面做了很多改變。
第一件是Domain name續約並全面採用 gasolin.idv.tw 系列網址。
本如部落格網址可由 blog.gasolin.idv.tw 連結,
Android書籍/應用相關訊息可由 android.gasolin.idv.tw 連結。
第二件是使用的網頁框架改變。
個人的首頁 www.gasolin.idv.tw 仍然架在Google App Engine上頭,
但背後使用的技術,也從Python based的 GAEO ,改為使用Java based的 Play! Framework。
使用 Play! Framework 的好處是它並不像GAEO一樣完全捆綁在Google App Engine上,而是隨時可以搬離GAE獨立運作。
再者Play!的專案架構和使用方法很接近TurboGears、Django等現代的網頁框架,因此熟悉現代網頁框架的開發者應該能很快地上手。開發的時候可以在本地端開發,而且修改後的結果也能即時自動編譯並顯示,用起來非常接近使用動態語言開發的使用經驗。(Play!的命令行工具是用Python寫的:))
Play! 的另一個好處是有很好的模組(Module)架構。要將網站發佈在Google App Engine上時,透過GAE模組和搭配Siena(提供ORM層)、crudsiena(提供自動Admin管理頁面)模組,可以不被Google App Engine的一堆限制所制約,從而得到完整的開發經驗。
Play! 的官方網站上有很齊全的文件可供參考。所謂的「齊全」到了什麼地步呢?
除了簡介、教學、模組介紹之外,甚至還有cheatsheet !
要從頭開始建立一個Play網頁程式到發佈在GAE,要做以下6幾點
1. 建立專案
$ play new [project name]
2. 安裝相關模組
執行
$ play install gae-版本
$ play install siena-版本
$ play install crudsiena-版本
3. 修改模組依存關係
進入專案目錄, 修改 conf/dependencies.yml 檔案
# Application dependencies
> require
: - play -> play [1.2.1,)
> - play -> secure
> - play -> siena [2.0.0,)
> - play -> crudsiena [2.0.0,)
> - play -> gae 1.4
4\. 自動檢查模組依存關係
執行
$ play deps
5\. 修改GAE相關設定
根據[GAE](http://www.playframework.org/modules/gae)模組提供的文件做相應的GAE發佈設定(指定要deploy的GAE代號)
6\. 發佈
執行
$ play gae:deploy --gae=[app engine java sdk path]
如此即完成整套使用[Play!](http://www.playframework.org/) + [Google App Engine](http://code.google.com/appengine/) 的配置流程。
Update 2011/7/20: 在Taipei GTUG活動中和大家分享了Play! on GAE的相關經驗,並公開投影片
**[Play Framework on Google App Engine](http://www.slideshare.net/gasolin/play-framework-on-google-app-engine "Play Framework on Google App Engine")**
View more [presentations](http://www.slideshare.net/) from [gasolin](http://www.slideshare.net/gasolin)