Vincent Thinking

          All about Vincent's work and life

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 0 文章 :: 183 評論 :: 0 Trackbacks
          ZK 一個開源的ajax web框架,基于事件驅動的組件,通過標記語言來設計組件來簡化開發人員的工作。顯著的一個特點是使用類似XUL的標記語言來定義組件。

          其實我對這種類似桌面的開發方式來開發web程序一點都不感冒,因為封裝的東西太多,勢必影響擴展性。而且對應的社區也很少,很多因素影響。

          一個企業應用對于框架,技術并不是最重要的,需求和人員的素質等等因素也是很制約的。 很多開源的東西,在我看來只是 “看起來很美!” 回過來說zk,能以這種方式來開發也許能給我們很多啟發。
           
          有興趣的可以去看看:
          zk http://zk1.sourceforge.net/
          posted on 2006-03-14 21:40 Vincent Thinking 閱讀(4108) 評論(2)  編輯  收藏 所屬分類: JAVA

          評論

          # re: ZK Ajax but no JavaScript 2006-04-19 01:31 Tom
          Extensibility and ease-to-use are two major goals when I designed ZK.

          Ease-to-use is the surface to attract spotlight and new users, while extensibility is the bottom line to make a project bloom in the longer term.  回復  更多評論
            

          # re: ZK Ajax but no JavaScript 2006-04-28 10:15 joken
          傳統的網絡應用
          為了簡單而有效地交換文檔資料, Web 技術, HTTP 和 HTML, 被組織成基于頁面的無狀態的通訊模式.在這種模式下, 一個頁面是獨立的并且是客戶端和服務器端通訊中最小的單元。由于Web已經成為應用開發的缺省平臺 。
          Browser Server,
          這種方式面臨著一個真實的挑戰: 無力表現今天應用程序復雜的界面。.例如, 給客戶一報價單,你可能必須打開一個頁面去搜索他的歷史交易記錄,打開另一個頁面看最新的價格,還要一個頁面看當前的庫存。用戶被強制離開當前的頁面,在幾個頁面中不停地轉換.這是很容易被搞糊涂的,最終客戶可能會感到不愉快,降低了效率失去了生意 。
          在基于頁面模式的基礎上開發一個現代的應用程序也是一個真實的挑戰。在這種模式下,運行在服務器端的應用程序必須小心處理來自客戶端請求的每一件事,呈現響應,頁面間的導航處理, 和各種可能由用戶導致的錯誤。 數十個框架,象: Struct, Tapestry and JSF, 都是簡單地應用這種模式. 由于基于頁面的模式和現代應用間的巨大裂痕,學習和使用這些框架從來都不是愉快的過程,更不用提簡單或直覺了。
          Ad-hoc AJAX Applications
          經過十年的發展, Web 應用程序已經從靜態HTML頁面到動態HTM,到applets ,到Flash,最終到AJAX技術(異步的javaScript 和 XML)。

          例如象 Google Maps 和 Suggest這樣的例子, AJAX 帶給Web應用程序新的生命,它提供了和桌面程序一樣的交換互能力。不同于applets 或 Flash, AJAX是基于標準的瀏覽器和JavaScript,沒有任何插件。 AJAX 是新一代的DHTML. 同 DHTML一樣,它嚴重地依賴于JavaScript去監聽用戶觸發的事件,同時動態地維護在瀏覽器中的一個頁面的視圖界面。此外,它更進一步地使服務器和客戶端異步地通信,不再離開或重新展示整個頁面。打破了基于頁面模式的服務器和客戶端間的較重的數據通訊量。經過恰當的設計,AJAX能過帶給Web應用常見的桌面應用程序的Rich控件,使Web應用程序看上去更有活力,并且所有的內容都能被程序動態地更新。
          倘若用戶需求更好的交互性時,AJAX會給已經高昂的Web應用程序的開發增加了更多復雜性和技巧性的先決條件。開發者必須維護在瀏覽器中的DOM和與服務器的不協調的通訊,甚至javaScript中的錯誤。為了更好的交互性,開發者必須復制部分數據和業務邏輯到瀏覽器中,增加了維護的花費,增大了在server和client間的數據同步的難度。
          AJAX應用不同于傳統應用之處在于如何處理請求。開發者還必須彌合被基于頁面無狀態的模式引起的裂痕。

          ZK: What It Is
          ZK是事件驅動的,基于部件的使Web用戶界面成為富客戶端的框架。ZK包含了一個基于AJAX的事件驅動的引擎,一個XUL和XHTML的富客戶端界面部件集,和一種叫做ZUML的標記語言(ZK 用戶接口標記語言)。
          用ZK,你能用富特性的XUL和XHTML部件表現你的應用程序,并且在被用戶動作觸發的事件上操作它們,就想你做了多年的桌面應用程序一樣。不同于其他多數的框架,AJAX是在ZK中是幕后的技術。部件內容的同步和排序的事件是被ZK引擎自動地處理的。
          你的用戶能夠得到和桌面應用一樣的響應和交互性,并且你的開發過程會和桌面應用程序一樣的簡單。
          除了一個簡單的模式和富客戶端部件,ZK還支持一種標記性語言,叫做ZUML。ZUML象XHTML讓開發者去設計界面而不需要編程序。用XML命名空間,ZUML無縫地集成了不同的標簽集在同一個頁面。當前,ZUML支持兩種標簽集,XUL和XHTML。
          為了快速的原型開發和自定義開發,ZUML允許開發者嵌入JAVA和EL表達式。開發者完全能選擇不嵌入java代碼而寧愿遵守嚴格的規定。不同于內嵌于HTML中的JavaScript,ZK在SERVER端執行所有的內嵌代碼。
          從應用程序開發者的角度看,我們說的所有事情都運行在server端是值得注意的。對于部件開發者,他們必須在交互性和簡單性間平衡,來決定什么事情必須在瀏覽器中執行,什么必須在服務器中執行。

          ZK: What It Is Not

          ZK是與持久層或內部業務層無關的。ZK被設計為盡可能瘦的。它的目的只是表現層。它不要求或建議任何背后的技術。所有你最喜歡的中間件都可以和過去一樣使用,象JDBC,Hibernate,Java Mail,EJB or JMS.
          ZK不為開發者提供象RMI或其他的在Client和server間的通信的API,因為所有的程序都是運行在server端的同一個JVM中。
          ZK不強制開發者用MVC或其他的設計模式。是否使用由開發者自己選擇。
          ZK的目標不是一個要攜帶XUL到WEB應用的框架。它的目標是將桌面編程序方式帶入WEB程序開發中。當前,它支持XUL和XHTML。在未來,它可能支持XAML,XQuery和其它的。
          ZK在當前的實現中內嵌了AJAX。它沒有終止于AJAX。將來,用為移動設備開發的ZK,你的應用程序能夠用在任何支持J2ME的設備,象PDA,手機,和游戲盒等。而且,你不需要修改你的程序。

          ZK:局限性
          ZK 不適合主要運行在客戶端的應用,象3D游戲等。
          除非你寫一個特定的部件,ZK 不適合那種增強在客戶端的計算能力的應用。
            回復  更多評論
            

          主站蜘蛛池模板: 乐业县| 衡东县| 历史| 色达县| 苗栗市| 桐乡市| 昭平县| 平度市| 林甸县| 泽州县| 仲巴县| 张家界市| 拜泉县| 那曲县| 潍坊市| 中西区| 扶绥县| 乐亭县| 株洲县| 合作市| 嵊泗县| 固始县| 三穗县| 谢通门县| 长海县| 连云港市| 沅陵县| 邵东县| 马尔康县| 大竹县| 申扎县| 兴文县| 阆中市| 平顶山市| 商城县| 鸡西市| 厦门市| 新闻| 拉孜县| 永城市| 民勤县|