好好生活,努力工作,天天向上!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

            RAP 可以讓開發(fā)人員使用JAVA API和按照Eclipse 插件的開發(fā)模式構(gòu)建基于AJAXWeb 2.0應(yīng)用程序,是的,你沒有看錯(cuò),其實(shí)RAP的工作原理是采用交叉編譯的方式將 Java 代碼生成JavaScript文件,底層基于Qooxdoo AJAX框架,這樣,我們就不必接觸JavaScriptCSS和處理Http的細(xì)節(jié)了,可以讓我們更關(guān)心程序的功能實(shí)現(xiàn),想起來(lái)的覺得很幸福。

            RAPRCP 一樣,運(yùn)行在Equinox框架上,EquinoxOSGI R4規(guī)范的實(shí)現(xiàn),是一個(gè)非常優(yōu)秀和成熟的OSGi框架,Eclipse 是通過這個(gè)框架實(shí)現(xiàn)靈活的擴(kuò)展性和插件的熱部署。RAP也支持Eclipse的大部分?jǐn)U展點(diǎn),其實(shí)RAPRCP在架構(gòu)上非常的類似,下圖分別為RCPRAP的架構(gòu)圖:

             可以看出,這之間的整體架構(gòu)差別不大,RCP是基于SWT的,RAP是基于RWT的,  RWT是實(shí)現(xiàn)了SWT功能的一個(gè)子集。其實(shí)這之間的使用方式都差不多。比如RWT也能和SWT一樣使用MVC的方式來(lái)創(chuàng)建表格。

             RAP可以使用Servlet 編譯,支持Servlet 2.32.42.5規(guī)范,并且可以通過打包成war文件部署在服務(wù)器上,客戶端通過瀏覽器直接訪問,不過這里的客戶端和服務(wù)器的實(shí)現(xiàn)也不一樣,。下面分別是服務(wù)器和客戶端的實(shí)現(xiàn)。

             服務(wù)器端:
           

          客戶端:

            

             客戶端的功能比較簡(jiǎn)單,是通過Qooxdoo程序從服務(wù)器上更新信息并繪制出相應(yīng)的組件顯示在瀏覽器中。基本上只是負(fù)責(zé)提交和更新顯示數(shù)據(jù)的功能,服務(wù)器端的功能就比較復(fù)雜,比如要管理插件的生命周期,尋找新的插件并加載和管理系統(tǒng)的資源,還要處理多用戶環(huán)境,在不同Sessions之間處理 OSGI bundles 的關(guān)系。

           
              RWT VS SWT

            控件:

              RWT實(shí)現(xiàn)了SWT 中的大部分基本控件,使用方法大同小異,也提供了CTabFolderCBanner自定義控件,RWT中的TreeTable功能和SWT的的差不多,支持排序、過濾和直接編輯單元格,使用方式也一樣的。可以直接從SWT代碼復(fù)制到RWT程序中使用。

             布局

              RWP同樣可以像SWT一樣使用布局,布局的數(shù)據(jù)在服務(wù)器上計(jì)算處理,我們基本上不用擔(dān)心跨瀏覽器出現(xiàn)布局混亂的問題了,目前RWP支持下面的布局:  

          1 GridLayout, 
          2 RowLayout
          3 FillLayout
          4 FormLayout
          5 StackLayout

            RWT中布局采用的計(jì)算算法和SWT一樣。

           事件處理:
            
          目前RWT支持以下事件類型: 

          1?SelectionListener
          2  ControlListener
          3?ShellListener 
          4?MenuListener
          5?ModifyListener
          6?VerifyListener ? 

           

            RWT附加功能:
            
          RWT提供了附加的API可以管理web 環(huán)境,我們可以調(diào)用RWT.javagetLifeCycle靜態(tài)方法獲得程序的生命周期控制類,直接操作程序的生命周期可以通過getResourceManager靜態(tài)方法獲得資源管理的控制類,手工管理系統(tǒng)資源,通過getSessionStore方法管理session資源;通過getRequest 方法處理用戶的請(qǐng)求getResponse處理服務(wù)器的響應(yīng)。假如我們下面URL中得到請(qǐng)求的參數(shù)內(nèi)容

          http://localhost:8080/rap?startup=foo&var1=value1&var2=value2 可以調(diào)用

          1 HttpServletRequest request = RWT.getRequest(); 
          2 String var1 = request.getParameter( "var1" ); 
          3 String var2 = request.getParameter( "var2" ); 


            RAP.JFace vs RCP.JFace

              RAPJFace實(shí)現(xiàn)了RCPJFace的所有視圖查看器,比如TableViewerTreeViewer等;

              支持大多數(shù)的視圖概念,像:ContentProviderLabelProviderColorProviderViewerFilterDecoratingLabelProvider

              支持文本裝飾,比如文本框前面加個(gè)小燈泡提示

              支持所有JFace的標(biāo)準(zhǔn)對(duì)話框,也支持自定義對(duì)話框。

              支持向?qū)ы?yè)

              支持附加視圖,比如 OutlineProperties視圖

              編輯器支持:可使用多頁(yè)編輯器,支持繼承自ISaveablePart的視圖

              支持透視圖:可支持透視圖切換器,透視圖擴(kuò)展點(diǎn)。

              支持Eclipse 3.3的菜單框架:包括CommandsHandler,支持采用表達(dá)式來(lái)控制菜單是否可見和是否可用

              支持Form表單樣式

              還有一個(gè)殺手級(jí)的特性: 支持在后臺(tái)運(yùn)行Job,可以通過UI界面執(zhí)行長(zhǎng)時(shí)間任務(wù),支持Progress View 視圖。

              如果你很喜歡RCPJFaceData Binding功能的話,在RAP中也可以實(shí)現(xiàn),通過RAP的附加插件可以讓你擁有RCP的數(shù)據(jù)綁定功能,并且可以運(yùn)用到目前所有的RAP控件中,

             也許你看到這里的時(shí)候,上面的信息有些過時(shí)了,那有什么辦法呢,Eclipse 組織的動(dòng)作發(fā)展太快了,而且理念也非常的超前,應(yīng)該聽說(shuō)過E4吧,Eclipse 的下一代開發(fā)工具,可以在Web 瀏覽器中打開Eclipse 進(jìn)行開發(fā)了。持續(xù)關(guān)注Eclipse的發(fā)展,希望NetBeans不要落后的太遠(yuǎn)。
             

          posted on 2009-05-21 12:49 VWPOLO 閱讀(4036) 評(píng)論(2)  編輯  收藏 所屬分類: Web 開發(fā)

          Feedback

          # re: RAP 與 RCP的差別 2009-05-21 13:50 Oh God
          If Java is dead, then where is RAP's Server?  回復(fù)  更多評(píng)論
            

          # re: RAP 與 RCP的差別 2009-05-21 14:39 VWPOLO
          @Oh God
          我沒有希望Java掛掉,而是希望它發(fā)展的更好  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 麻栗坡县| 安吉县| 凤翔县| 丁青县| 四会市| 滦平县| 浦江县| 梁河县| 华蓥市| 治县。| 建昌县| 乌拉特前旗| 大连市| 米泉市| 禹州市| 乾安县| 兴海县| 凤庆县| 吉水县| 宽城| 四川省| 朝阳区| 潜江市| 新竹县| 楚雄市| 承德市| 枣庄市| 酉阳| 乡宁县| 贺州市| 青海省| 东兰县| 广安市| 安龙县| 永登县| 石阡县| 浠水县| 祁门县| 遂溪县| 潜山县| 黎城县|