如果要開發大型的 Ajax 專案非常值得考慮使用。
ZK 的假想敵是 Echo2,
ZK 認為 Echo2 使用的 Swing like 開發方式,是在假設開發人員都用過 Swing。
而我個人也是非常反對這點,因為這樣美工人員完全無法進場。
ZK 本身使用的是標準 XUL (XML User Interface Language) 的擴充稱為 ZUL,我目前沒有去了解 XUL 跟 ZUL 的差別有多少,但看起來差異不是很大。
ZK 也是一個 Java-based 的 framework,跟大部份的 Java web application framework 一樣,由一個 front controller servlet 去接所有 *.zul 的 request,server 會把 parse 成 html。而 ZUL 的語法大概如下:
Hello, World!
不難想像還會有 button, checkbox 等 ZUL 元件,這點跟 JSF 或是 OpenLaszlo 倒是差異不大。ZUL 的 tag 本身可以使用 css 或是 javascript。
在大型的 Ajax 專案裡,講究的是有沒有一個夠強的 framework 提供足夠的基礎元件、讓美工與開發人員簡便的合作。上面提到的幾個 framework:ZK、Echo2、JSF 和 OpenLaszlo,第一個出局的是 Echo2,不管它做得怎麼強大,網頁美工絕對不能拿來當 Swing 搞。第二個有問題的是 JSF,JSF 在 Struts 的影子之下,後端雖然強大,但前端仍然很少著墨。規範中前端的元件少得可憐,如果要找免費好用的元件恐怕不是很容易。再說 JSF 對 Ajax 支援有限,而且用起來綁手綁腳的,如果只是為了 Ajax 是沒必要跟自己過不去。OpenLaszlo 已經是很成熟的東西了,觀念上跟 ZK 非常接近,同一份 code 能產生 Flash 跟 DHTML 兩種模式實在是讓人讚嘆。只是用的是獨規的語法,比起 ZK 用類 XUL 的語法好像差了一些。在切割 MVC 這三件事上面 OpenLaszlo 也有點模糊不清,而且以我對 OpenLaszlo 粗淺的了解,沒有看到 control tag,反之 ZK 對於 if condition, iterating 等等都有考量到,這也是 ZK 優勢所在。ZK 還有一個好處是看來 extends 它的 class 或是做 custom 的元件不是很難。但是 OpenLaszlo UI event 直接 call Web Service 的模式可謂是 SOA 的奧義,非常有用。
總合以上,我覺得 ZK 跟 OpenLaszlo 都是很值得考慮使用的。可能你會發現怎麼沒提到 Dojo?因為 Dojo 現在已經成為 JavaScript component 的地下標準了,每家都讚助它,使用它。ZK 已經結合 Dojo,OpenLaszlo 也有在做這件事。看完 ZK 跟 OpenLaszlo,JSF 又再被我打入冷宮了,我寧可用 Spring Web Flow 去把 ZK 或 OpenLaszlo 的頁面接起來也不想用那一大包沒多少建設的東西。要不就使用奧義:OpenLaszlo + BPEL + ESB 往軟體工程的烏托邦前進。可惜的是 Gavin King 的 JBoss Seam 綁死用 JSF,就連帶被判出局了。之前有人做一個 HSE (Hibernate + Spring + Echo2) 的 framework,是時候來做 OLSH (OpenLaszlo + Spring + Hibernate) 或是 ZSH (ZK + Spring + Hibernate) 了。
資策會推廣ZK Ajax框架,為臺灣研發軟體扎根
文/黃彥棻 (記者) 2008-04-04
資策會與普奇科技合作,將於4月下旬首度推出由臺灣自行研發、揚名全球的ZK Ajax框架的技術解析與實戰課程,適合Java開發工程師學習。
由臺灣軟體公司普奇科技自行開發的ZK Ajax框架,不僅獲得財星前500大公司,包括巴克利銀行、昇陽、朗訊等公司的採用,更是Open Source網站SourceForge.net在Ajax分類中,下載第一名的開源軟體。為了推廣開源軟體的使用,並推廣臺灣自行研發的Ajax框架,資策會數位教育研究所將於4月下旬,首度推出ZK核心技術解析與實戰的推廣課程。
資策會數位教育研究所教學組長蘇國鈞,同時也是資策會Java課程的授課講師。他表示,一般的Java開發工程師相較於微軟.NET開發工程師,更習慣使用各種開源軟體做開發工具。而近兩年相當普遍的Ajax框架,因為具有豐富的前端動態效果,頗受開發人員青睞。
蘇國鈞在使用過ZK Ajax框架後,發現ZK解決了不同瀏覽器的JavaScript語言版本不同的問題。基於推廣開源軟體,加上ZK原廠普奇科技也希望能在臺灣推廣這一套Ajax框架,資策會決定推出ZK相關課程。
目前資策會數位教育研究所在臺北、中壢、臺中和高雄都有訓練中心,「希望至少能培訓3~4名種子講師,以應未來其他地區的開課需求。」蘇國鈞說。從整個課程規畫來看,蘇國鈞表示,ZK適合Java開發工程師進一步學習。
ZK Ajax的框架在SourceForge.net的Ajax分類上,下載已經超過60萬次,名列Ajax類別第一名,不分類的下載次數也是前5名。普奇科技ZK產品經理顏瑾和表示,ZK這麼受歡迎的原因在於簡單上手、表現豐富及擴張性強。
很多Ajax框架都必須使用JavaScript語言,而ZK是一個伺服器端的Ajax框架,蘇國鈞表示,這可以打破以往前端需要表現動態效果時,必須配合不同瀏覽器撰寫不同JavaScript的難題。顏瑾和則表示,使用ZK框架開發所有Web端的應用程式,只需要專心寫伺服器端的Java程式,不僅上手容易,也可以直接呼叫資料庫的資料,再加上所有商業邏輯都不會傳送到用戶端,也沒有被網路攔截的疑慮,也顯得較為安全。
「ZK至少有超過170種基本元件,」顏瑾和說, ZK也將其他一些好用的開放源碼工具包在ZK的擴充元件中,也使得ZK能有非常豐富的表現。ZK框架對程式開發者而言,最大的優點在於能彈性擴充,顏瑾和舉例,如果開發工程師使用JSF的平臺,若需要ZK某一些功能,可以彈性採取類似插卡的方式,在頁面上插入JSF的自動元件即可。
資策會在這一次的課程中,則會設計一個實機操作的課程內容,會利用ZK相關的元件和工具完成一個美食地圖。顏瑾和表示,主要會運用ZK有3個重要的元件,包括ZK Google Maps、Border Layout和Data Binding,完成一個美食地圖。
顏瑾和進一步指出,ZK Google Maps具有滑鼠拖拉、即時顯示的特色,能完成美食地圖的地圖呈現部分。再者,Border Layout則能夠分割功能責任區塊,完成美食地圖框架,可以依照不同目的作動態呈現。最後,Data Binding可以動態連結Java Bean和ZK的使用者介面(UI),連結ZK UI的後端資料模型。文⊙黃彥棻
ZK美食地圖3元件功能說明一覽表
元件名稱 ZK Google Maps Border Layout Data Binding
功能 拖拉,放大縮小,座標指定,標記特徵點 排版、設計、分割功能責任區塊 動態連結Data Model (Java Bean)與ZK的 UI部分
角色 完成美食地圖的地圖呈現部分,使用Google Map所提供的眾多功能 完成美食地圖的框架, 達成依目的不同而動態呈現的需求 連結ZK UI 元件與後端資料模型
優點 ● 快速以XML標籤方式宣告Gmap物件
● 數行程式碼可寫出Ajax的地圖應用 ● 直覺式呈現方式
● 可以動態調整版面寬度與高度 ● 可快速結合前端 UI與後端商業邏輯
● 可自動管Java Bean Setter與Getter行為
資料來源:普奇科技,2008年4月
沒有留言:
張貼留言