程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> RAP與RCP的差別

RAP與RCP的差別

編輯:關於JAVA

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

RAP和RCP一樣,運行在Equinox框架上,Equinox是OSGI R4規范的實現,是一個非常優秀和成熟的OSGi框架,Eclipse 是通過這個框架實現靈活的擴展性和插件的熱部署。RAP也支持Eclipse的大部分擴展點,其實RAP和RCP在架構上非常的類似,下圖分別為RCP和RAP的架構圖:

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

RAP可以使用Servlet 編譯,支持Servlet 2.3、2.4和2.5規范,並且可以通過打包成war文件部署在服務器上,客戶端通過浏覽器直接訪問,不過這裡的客戶端和服務器的實現也不一樣,。下面分別是服務器和客戶端的實現。

服務器端:

客戶端:

客戶端的功能比較簡單,是通過Qooxdoo程序從服務器上更新信息並繪制出相應的組件顯示在浏覽器中。基本上只是負責提交和更新顯示數據的功能,服務器端的功能就比較復雜,比如要管理插件的生命周期,尋找新的插件並加載和管理系統的資源,還要處理多用戶環境,在不同Sessions之間處理 OSGI bundles 的關系。

RWT VS SWT:

控件:

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

布局:

RWP同樣可以像SWT一樣使用布局,布局的數據在服務器上計算處理,我們基本上不用擔心跨浏覽器出現布局混亂的問題了,目前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 環境,我們可以調用RWT.java的getLifeCycle靜態方法獲得程序的生命周期控制類,直接操作程序的生命周期; 可以通過getResourceManager靜態方法獲得資源管理的控制類,手工管理系統資源,通過getSessionStore方法管理session資源;通過getRequest 方法處理用戶的請求getResponse處理服務器的響應。假如我們從下面URL中得到請求的參數內容:

http://localhost:8080/rap?startup=foo&var1=value1&var2=value2 可以調用

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

RAP.JFace vs RCP.JFace

RAP的JFace實現了RCPJFace的所有視圖查看器,比如TableViewer、TreeViewer等;

支持大多數的視圖概念,像:ContentProvider、LabelProvider、ColorProvider、ViewerFilter、DecoratingLabelProvider,

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

支持所有JFace的標准對話框,也支持自定義對話框。

支持向導頁

支持附加視圖,比如 Outline,Properties視圖

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

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

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

支持Form表單樣式

還有一個殺手級的特性: 支持在後台運行Job,可以通過UI界面執行長時間任務,支持Progress View 視圖。

如果你很喜歡RCP中JFace的Data Binding功能的話,在RAP中也可以實現,通過RAP的附加插件可以讓你擁有RCP的數據綁定功能,並且可以運用到目前所有的RAP控件中,

也許你看到這裡的時候,上面的信息有些過時了,那有什麼辦法呢,Eclipse 組織的動作發展太快了,而且理念也非常的超前,應該聽說過E4吧,Eclipse 的下一代開發工具,可以在Web 浏覽器中打開Eclipse 進行開發了。持續關注Eclipse的發展,希望NetBeans不要落後的太遠。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved