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

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

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

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

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

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

             服務(wù)器端:
           

          客戶端:

            

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

           
              RWT VS SWT

            控件:

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

             布局

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

          1 GridLayout, 
          2 RowLayout
          3 FillLayout
          4 FormLayout
          5 StackLayout

            RWT中布局采用的計算算法和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 方法處理用戶的請求getResponse處理服務(wù)器的響應(yīng)。假如我們下面URL中得到請求的參數(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實現(xiàn)了RCPJFace的所有視圖查看器,比如TableViewer、TreeViewer等;

              支持大多數(shù)的視圖概念,像:ContentProvider、LabelProviderColorProvider、ViewerFilter、DecoratingLabelProvider

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

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

              支持向?qū)ы?/span>

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

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

              支持透視圖:可支持透視圖切換器,透視圖擴展點。

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

              支持Form表單樣式

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

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

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

          posted on 2009-05-21 12:49 VWPOLO 閱讀(4036) 評論(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ù)  更多評論
            

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

          主站蜘蛛池模板: 东乡县| 景德镇市| 木兰县| 土默特右旗| 扶绥县| 松原市| 嘉祥县| 新宁县| 桃江县| 固始县| 水富县| 神农架林区| 灌阳县| 黄浦区| 阿图什市| 沈丘县| 锡林浩特市| 鞍山市| 广西| 连江县| 同仁县| 太仆寺旗| 贵港市| 五峰| 莲花县| 常德市| 射洪县| 若羌县| 建德市| 马鞍山市| 龙门县| 庆云县| 佛山市| 枣庄市| 湘潭市| 平和县| 财经| 宣威市| 茂名市| 根河市| 永寿县|