星期三, 5月 13, 2009

GWT初體驗

GWT stands for Google Web Toolkit.

最近真的很多初體驗... 目前考慮要不要把Spring也拉進來體驗一番...

言歸正傳, 我想大家都知道關聯性資料庫通常是系統效能的瓶頸, 增加資料庫伺服器數量對於運算能力的增加有限, 更換資料庫更是一場災難, 還好我們可用Hiberante之類的架構來改善這些問題. 但Web UI的部分呢? AJAX解決了不停換頁所造成的頻寬浪費, 但是卻依然遭遇各家瀏覽器對於HTML, JavaScript, CSS支援程度不一的問題, 解決這類問題可說是相當煩人又曠日廢時, 因此更該使用一些框架來增加開發效率, 畢竟很多狀況都有人幫忙測試過了.

雖然我對於HTML, JavaScript, CSS皆有一定的熟悉度, 但我對JavaScript一向不太喜愛, 因此JQuery, Ext, Yahoo UI Library, Rico... 等方案都不在我的選擇之中, Flash/ Flex解決方案也曾接觸過, 但ActionScript很類似JavaScript, 因此也出局.

而GWT透過Java程式來產生JavaScript的方式就很符合我的需求, 相容性交給Google的工程師去傷腦筋, 除了GWT之外, JSF, ZK其實也算某種程度滿足我的需求, 但因為Android是公司的重點目標, 我目前認為GWT與Android的UI開發經驗是可以互通的, 再加上GAE也可使用GWT, 因此選擇GWT.

從安裝SDK到開啟第一個專案, 根據GWT官網上的 Quick Start 基本上沒有問題. 不過後來想自己修修改改的時候就遇到問題了, 枉費我這次有比較努力看一下文件...

  • Module, Endpoint, .gwt.xml, .nocache.js不太好搞懂, 我花了不少時間才覺得掌握了一點, 現在可以在一個html上讀入兩個Modules, 使用兩個Endpoints
  • GWT (client)並不完全支援J2SE與J2EE規格
  • GWT可運用RPC架構來處理事務, server端的程式就不受上述的限制
  • 建立專案時所帶的範例程式碼可以幫助你了解RPC的運用, 而若想快點感受GWT的威力, 我推薦SDK裡面的Mail範例

一個html上讀入兩個Modules, 使用兩個Endpoints的畫面

明天來評估要用GWT直接呼叫Web Services還是要透過RPC來實作.

沒有留言: