08年初開始接觸Zkoss框架,到如今6年多的時間,不但本團隊產品徹底轉型到Zkoss平臺,而且推薦給數家公司,都已將前端展現替換爲該框架,開發效率提升至少2倍以上,並且對於Web系統的設計,代碼規整有着很大的幫助。 前端
框架官網http://www.zkoss.org 後端
注:zkoss官網上的例子都是標籤式開發,此種方式咱們未選用,咱們使用的是後端類Swing開發方式。 服務器
市面上相似的框架有很多,徹底使用服務器端語言開發,自動生成前端代碼。
Java有表明性的包括:zkoss,vaadin ...
Php的有proda...
以上均可以再Web開發過程當中使用服務器端語言作到組件裝配,事件驅動。以前公司產品使用ExtJs+PHP開發,用了3,4年,雖然組件很是豐富,可是新人上手週期較長,調試繁瑣,而且本人很是不喜歡js代碼的調試,用firebug之類的跟蹤也不爽,後來自行仿照proda的開發方式,實現了一套相似的平臺,只不過前端仍是基於Extjs,隨着產品日趨複雜,客戶化開發的需求的增多,平臺的維護完善成本也在增長,所以嘗試尋找一種現成完善的同類開發框架,在對N種框架嘗試了預研性開發後,最終選定了Zkoss,實踐證實,Zkoss框架很是不錯。 框架
當時選型的目標徹底拋開語言限制,我的認爲語言只是最基礎的工具,無需拘泥。主要考慮:
1). 開發方式
2). 開發效率
3). 運行效率
4). 測試方式(自動化測試)
5). 部署方式(集羣)
6). 框架擴展性(自行實現所需組件,自定義框架樣式風格)
Zkoss基本都知足,Vaadin在美觀程度上比較突出,可是事件驅動方式有點另類,Zkoss徹底是Swing的開發方式。 工具
產品開發框架轉型後,主要達到了如下目標
1). 模塊開發無需考慮前臺界面繪製,專一於邏輯實現
2). 代碼開發規整統一
開發僅使用Java語言沿用Swing界面開發方式
先後端代碼無交織融合使用
全部模塊代碼封閉,客開徹底使用繼承重載方式
3). 下降層級模塊間的耦合性
按級別、分粒度繼承封裝
主要使用基於組件的開發方式,MVC爲輔助
模塊開發採用服務裝配的方式
4). 人員分層次按平臺功能開發
5). 下降客開人員開發調試難度 測試
具體的範例,演示,文檔在此再也不細說,參見zkoss官網。 spa
下面附上開發風格代碼: 設計