【永恒的瞬間】
          ?Give me hapy ?

          我是一個JAVA EE開發(fā)人員,從業(yè)已經(jīng)有近七、八年的時間了。對JavaEE的企業(yè)用戶開發(fā)技術(shù)框架方面的比較熟悉。對Spring,Struts,Webwork,Hibernate等流行的開源框架也一直在工作中使用。

          在現(xiàn)在的MVC框架中,我比較傾向于采用WebWork,靈活輕巧Struts2其實(shí)質(zhì)就是對WebWork2的一次升級,這也說明了WebWork相對與Struts1的優(yōu)勢所在。在現(xiàn)在的RIA開發(fā)成為趨勢之后,在工作中也使用了DWR做Ajax服務(wù)器端的數(shù)據(jù)處理,并采用js template的腳本處理頁面顯示數(shù)據(jù),其中最大的痛苦就是調(diào)試JavaScript,盡管我們使用了firefox的插件調(diào)試javascrpt。

          正如“JAVA程序員當(dāng)如何選擇RIA開發(fā)環(huán)境”所提到ajax的的先天缺陷,并不適合RIA的全應(yīng)用開發(fā),如果只是在頁面中的局部使用是有一些優(yōu)勢,根據(jù)具體情況選擇最合適的。

          在Flex的應(yīng)用程序開發(fā)當(dāng)中,學(xué)習(xí)了很對范例,基本上瀏覽了一遍Flex的幫助文檔,并自己做了些小程序。

          其中遇到最大的困難不是在程序調(diào)試方面,而且程序管理方面的,代碼混亂,難以控制,尤其在多人開發(fā)的時候,更加容易出現(xiàn)這樣的情況。這樣的情況下RIA的開發(fā)是痛苦的,不適宜的。

          Cairngorm開發(fā)框架說白了就是一個FLEX應(yīng)用開發(fā)的MVC框架(自己的感覺)。將Model,view,Control獨(dú)立分開,清晰明了。

          什么是CairngormCairngorm是一個通過邏輯功能、數(shù)據(jù)、用戶視圖和代碼控制的任何事情來劃分你的應(yīng)用程序代碼的基礎(chǔ)方法論,可以叫做MVC(Model-View-Control)的一種實(shí)踐方式。

          Cairngorm的劃分
          Model Locator(模型定位器):存儲你的應(yīng)用中所有的Value Objects(數(shù)據(jù))和共享變量在一個位置。和Http的Session對象類似,只是它存儲在Flex接口的客戶端而不是在中間件應(yīng)用服務(wù)器的服務(wù)器端。

          View(界面):通過一個或者多個Flex組件(按鈕、面板、組合框、Tile等等)組合在一起的一個個命名單元,綁定數(shù)據(jù)在Model Locator(模型定位器)中,并且產(chǎn)生基于用戶操作(點(diǎn)擊、滾動、拖拽等)的自定義的Cairngorm事件。

          Front Controller(前端控制器):接收Cairngorm事件并映射他們到Cairngorm命令控制器上。

          Command(命令控制器):處理商業(yè)邏輯,調(diào)用Caringorm代理和(或)其它命令。

          Delegate(代理):由命令創(chuàng)建,實(shí)例化遠(yuǎn)程過程調(diào)用(HTTP、Web Service等等)并且處理命令的返回結(jié)果數(shù)據(jù)。

          Service(服務(wù)):定義連接遠(yuǎn)程數(shù)據(jù)存儲的遠(yuǎn)程過程調(diào)用(HTTP、Web Service等等)。


          有關(guān)Cairngorm的資料:/P>

          Cairngorm 是Iteration::two的開源項(xiàng)目, 是使用macromedia Flex的RIA開發(fā)的最佳
          實(shí)踐(best-practice)框架.
          Cairngorm基礎(chǔ)上開發(fā)RIA, 將會在Iteration::two的專家體系和現(xiàn)有的靈活可維
          護(hù)企業(yè)解決方案中達(dá)到平衡.
          Cairngorm本身并不是一個完整的企業(yè)應(yīng)用, 它只是提供了一個開發(fā)的骨架, Iteration::two稱
          之為體系.
          在這個體系中包括以下幾個部分:
          1. Business(業(yè)務(wù)邏輯部分)
          2. Command(命令部分)
          3. Control(控制部分)
          4. Model(數(shù)據(jù)模型)
          5. View(界面視圖)
          6. VO(ValueObject)

          我們從Control說起:
          在Control中, 定義了3個基類: Event, EventBroadcaster, FrontController.
          Event用于在應(yīng)用不同的層之間傳遞事件, 并攜帶事件的數(shù)據(jù). 包含type和data兩個
          成員.
          type存放一個區(qū)別不同事件的名稱,將會在FrontController中進(jìn)行注冊.
          而在命令(Command)類中, 會對事件進(jìn)行響應(yīng).

          EventBroadcaster是一個單例類(singleton), 用于廣播用戶動作對應(yīng)的事件. 使用
          方法: EventBroadcaster.getInstance().broadcastEvent( ... )

          FrontController稍微復(fù)雜一點(diǎn)點(diǎn). 用于將特定的用戶動作分發(fā)到指定的命令類. 
          FrontConroller是請求處理的核心類. 整個體系中遍布的EventBroadcaster.getInstance(
          ).broadcastEvent( ... )這樣的調(diào)用,
          都是用來通知監(jiān)聽控制器: 用戶發(fā)出了請求. 在實(shí)際應(yīng)用中, 開發(fā)者應(yīng)該生成一個
          FrontContoller的子類,
          并在構(gòu)造函數(shù)中調(diào)用addCommand()注冊預(yù)期事件的處理命令. FrontController的具
          體實(shí)現(xiàn)類應(yīng)該創(chuàng)建一次而且只能創(chuàng)建一次.



          http://cairngormdocs.org/

          http://labs.adobe.com/wiki/index.php/Cairngorm

          posted on 2007-02-06 14:55 ???MengChuChen 閱讀(846) 評論(0)  編輯  收藏 所屬分類: flex2Cairngorm
          主站蜘蛛池模板: 平昌县| 湖北省| 射洪县| 沈阳市| 宁德市| 大洼县| 盐津县| 大同县| 铜陵市| 宜川县| 武川县| 肇庆市| 陆良县| 波密县| 萨迦县| 宝鸡市| 蕉岭县| 南乐县| 金山区| 苏州市| 潞城市| 马关县| 宁德市| 江陵县| 交口县| 麻江县| 衡阳市| 濉溪县| 南木林县| 东安县| 交口县| 易门县| 柳河县| 洪雅县| 昌图县| 团风县| 汉寿县| 西安市| 北票市| 苏尼特左旗| 晋城|