Vincent Thinking

          All about Vincent's work and life

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            34 隨筆 :: 0 文章 :: 183 評(píng)論 :: 0 Trackbacks
          ZK 一個(gè)開源的ajax web框架,基于事件驅(qū)動(dòng)的組件,通過標(biāo)記語言來設(shè)計(jì)組件來簡化開發(fā)人員的工作。顯著的一個(gè)特點(diǎn)是使用類似XUL的標(biāo)記語言來定義組件。

          其實(shí)我對(duì)這種類似桌面的開發(fā)方式來開發(fā)web程序一點(diǎn)都不感冒,因?yàn)榉庋b的東西太多,勢必影響擴(kuò)展性。而且對(duì)應(yīng)的社區(qū)也很少,很多因素影響。

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

          評(píng)論

          # 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.  回復(fù)  更多評(píng)論
            

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

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

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

          ZK: What It Is Not

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

          ZK:局限性
          ZK 不適合主要運(yùn)行在客戶端的應(yīng)用,象3D游戲等。
          除非你寫一個(gè)特定的部件,ZK 不適合那種增強(qiáng)在客戶端的計(jì)算能力的應(yīng)用。
            回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 曲松县| 奇台县| 太仆寺旗| 正安县| 永宁县| 喀喇沁旗| 会宁县| 左权县| 泰来县| 如皋市| 象山县| 锡林郭勒盟| 中阳县| 凤翔县| 苍溪县| 嘉荫县| 山西省| 兴文县| 贡山| 玉溪市| 介休市| 招远市| 陇南市| 盘山县| 罗田县| 永善县| 清苑县| 张家界市| 宁陕县| 南投县| 塔城市| 鹿泉市| 海盐县| 宁德市| 广元市| 鹤山市| 宣恩县| 五大连池市| 南安市| 镇宁| 永宁县|