<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學習園地

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      3 Posts :: 14 Stories :: 0 Comments :: 0 Trackbacks

    使用SWT開發WEB應用

    Eclipse SWT(標準部件工具包)發展迅速,以其良好的性能和漂亮的外觀,已逐漸成為JAVA桌面應用開發的首選控件包。一直以來SWT都是用來開發桌面應用的,那這個優秀的工具包能否直接用于開發WEB應用呢?如今SmartSWT技術可以讓這個想法成為現實,這對SWT來說,無疑又多了一個用武之地。

    SmartSWT簡介

    為了提高傳統WEB應用的界面表現能力,RIA技術應時而生,各種RIA平臺通過各種手段來提高豐富的圖形界面。如Bindows,它使用動態HTML技術模擬Windows控件,還有Flex,直接使用Flash做為WEB應用的表現層,以彌補DHTML技術的不足。

    而SmartSWT則是基于SWT的RIA發布平臺。它可以將普通的SWT的應用直接發布成為一個可通過客戶端瀏覽器訪問的WEB應用,這樣就使通過SWT直接開發 富UI的WEB應用成為了現實。不僅如此,基于SWT擴展的許多擴展包也大都可以直接使用,如JFace、GEF等。

    SmartSWT和SmartClient不一樣,它并不是將SWT應用程序下載到客戶端來運行,而是和B/S模式的WEB應用一樣,整個應用程序是運行在服務端的,只是運行過程中將圖形界面實時顯示于客戶端的瀏覽器中,并將客戶端的操作事件自動實時返回服務端,觸發服務端原SWT應用的事件處理代碼進行處理。服務端的SWT應用所進行的數據庫操作和文件操作都是相對于服務器端進行的,而不像C/S應用那樣,需要客戶端自己將數據按自定義的通訊協議傳回服務端再進行處理。

    SmartSWT底層的通訊是加密而且高效的,在內網的客戶端打開服務端的SWT應用,和原來直接在本機使用相比相差不多。相當于將您機器的CPU降一檔后運行應用程序的感覺。

    SmartSWT目前測試版本是3.1,表示支持SWT3.1的兼容應用程序。

    下圖是一個SWT應用(SWT Control Example)在SmartSWT平臺部署后,客戶端通過IE瀏覽器訪問的效果:

     

    安裝運行

    SmartSWT的測試版僅支持Windows系統,根據其用戶手冊的說明,它的服務端正式版將支持Linux、Unix等系統。SmartSWT安裝運行非常簡單,從www.smartswt.com下載SmartSWT31壓縮包并解壓,在解壓目錄下有三個子目錄SmartSWTClient、SmartSWTServer和WEB。

    1. 打開SmartSWTClient目錄,運行Setup.exe安裝客戶端,該程序將在客戶端安裝一個定制的小型JAVA虛擬機。

    2. 打開SmartSWTServer目錄,運行Startup.bat,將運行SmartSWT服務端,SmartSWT使用自帶的JAVA虛擬機,所以您不用預先準備它。

    3. 如果您的客戶端和服務端都在同一臺機器,則直接進入WEB子目錄,用IE打開index.htm文件,大約15秒鐘左右即可在IE瀏覽器中啟動SmartSWT桌面,您這時可以通過Start菜單,啟動內置的DEMO程序體驗一番。

    開發SmartSWT應用

    開發SmartSWT應用基本上和開發普通的SWT應用相同。您可以使用Eclipse的SWT可視化插件來幫助創建一個SWT應用程序,比較好的有Designer及Eclipse的VisualEditor等。

    用于部署到SmartSWT服務器的SWT應用在開發時有些小的限制,幸好這些通常都只是舉手之勞:

    1. Display的獲取必須統一使用Display display = Display.getDefault()方法,不能使用new Deisplay()創建,SmartSWT目前尚不支持多Display的應用,對大多數應用來說這不是問題;

    2. 創建的Shell最好必須調用shell.setSize()對其尺寸進行初始化,否則在SmartSWT將默認呈最小化狀態;

    3. 盡量不要使用非公開的API,因為有少量非公開API,可能SmartSWT并沒有實現它;

    4. 盡量不要使用其它JNI技術和ActiveX控件,不要使用SWING和AWT等非基于SWT的控件;

    5. 避免初始化時一次創建幾十上百個控件,這樣會造成啟動時間較長,應在需要顯示時創建控件。

    部署SmartSWT應用

    SmartSWT的部署一樣很簡單,只需將調試通過的SWT程序的類文件,按包名目錄結構原封不動拷貝至SmartSWTServer的swtapps目錄,然后在SmartSWTServer.xml文件中按以下格式注冊一下,最后重啟SmartSWTServer,你就可以通過客戶端瀏覽器啟動SmartSWT桌面,在Start->Programs菜單里啟動它:

     

    <!-- Configuration of each SWT Application
      name: the name of the SWT Application
      mainClass: the main class to start the SWT Application
      startup: will it start just after the smartswt desktop started(haven't supported)
      description: the description of the SWT Application
    -->
    <Application name="ControlExample"
    mainClass="org.eclipse.swt.examples.controlexample.ControlExample">
        <startup>false</startup>
        <description>ControlExample Application</description>
    </Application>

    SmartSWT: RIA平臺的強有力競爭者

    SmartSWT同其它RIA平臺比較有一些獨特的優勢。首先它是基于SWT的RIA平臺,依托強大的Eclipse陣營,有許多擴展技術可用,如JFace、GEF、EMF等,像UML設計器、報表、動畫這樣的復雜圖形應用都可以通過SWT實現后,發布到SmartSWT,從而在WEB上很輕松地使用這些桌面應用獨有的表現技術。還有OpenGL、RCP這類應用也有可能在將來得到支持,而且Eclipse不斷發展中,SWT相關技術的不斷成熟,都將以最快的速度同時運用于WEB應用。而且多年來用積累的用SWT開發的軟件,不需要修改,或只需少量的修改,即可同時擁有WEB版本。

    其次,很多JAVA應用開發者往往只對JAVA服務端的技術感興趣,而對表現層采用的HTML、JS、JSP這類標簽語言和腳本技術并不喜歡。而事實上兼通JAVA技術、HTML和腳本技術的程序員也是少之又少。這也是造成許多傳統J2EE應用的界面表現不佳的原因。由于SmartSWT直接采用了SWT,使的整個應用的開發完全是純JAVA技術的開發過程,開發者不再需要與非面向對象的HTML、JS、JSP等標簽語言和腳本技術打交道,整個開發過程完全是桌面應用的開發模式,基于事件驅動。這使得應用開發在技術人員的配備上要容易得多。

    此外,發布到SmartSWT的SWT應用,客戶端通過瀏覽器使用時,仍然具有和原SWT一樣的具有Windows本地風格的界面,具有和真正桌面應用一樣的表現能力和事件機制,其表現能力和功能是Bindows以及Flex等技術無法真正模擬的。

    SmartSWT的局限性

    盡管SmartSWT有諸多好處,但也存在一些局限性。 由于技術實現的原因,對網絡傳輸速度要求較高。SmartSWT在內網內訪問時,其使用效果和本機上直接使用相差不多,但在外網上卻幾乎不具可用性。這決定了SmartSWT只能用于開發企業內網應用。

    另外,和Flex類似,Flex要求客戶端的瀏覽器安裝一個Flash ActiveX控件,SmartSWT也有類似要求。SmartSWT客戶端需要在瀏覽器中實時表現服務端SWT應用的圖形界面,并對用戶操作做出響應,這就需要在客戶端安裝一個特制的小型JAVA虛擬機,并以ActiveX控件的形式在IE中使用。某些政府機關的敏感部門對這種方式 可能比較反感。

    選擇SmartSWT,還是...

    是否選擇SmartSWT,取決于您的軟件應用范圍和客戶。如果您的軟件是內網的企業應用,您的用戶日常辦公使用的是Windows系統,而且對客戶端安裝一個小小的虛擬機不介意的話,選擇SmartSWT無疑是上佳選擇 。它將使您的WEB應用開發充分享受SWT開發的各種便利性和各方的豐富技術支持,完成普通WEB無法完成的功能。SWT界面的表現力和操作便利性,也會使客戶滿意度大大提高。

    參考資料

    條評論

      posted on 2014-04-24 14:33 丘比特 閱讀(300) 評論(0)  編輯  收藏 所屬分類: Java
      主站蜘蛛池模板: 国产成人精品日本亚洲11| 好看的亚洲黄色经典| 亚洲看片无码在线视频| 亚洲国产精品免费视频| 亚洲AV成人无码久久精品老人| 天黑黑影院在线观看视频高清免费| 亚洲精品tv久久久久久久久久| 免费国产在线精品一区| 久久久久亚洲AV成人网人人网站 | 麻豆视频免费播放| 久久久国产精品亚洲一区| 亚洲精品免费在线| www.亚洲成在线| 四虎在线视频免费观看| 日本亚洲欧美色视频在线播放| 国产精品无码一二区免费| 国产精品亚洲专区在线播放| 亚洲?V无码成人精品区日韩| 人妻仑乱A级毛片免费看| 国产av无码专区亚洲av桃花庵| 最近免费中文字幕MV在线视频3| 亚洲福利在线视频| 在线观看特色大片免费视频| 亚洲国产精品成人午夜在线观看 | 91久久精品国产免费直播| 亚洲最大在线视频| 女人18毛片特级一级免费视频 | 亚洲AV福利天堂一区二区三| 久久国产乱子伦精品免费看| 亚洲免费中文字幕| 日本免费一区尤物| 丝袜足液精子免费视频| 亚洲日本香蕉视频| 免费欧洲美女牲交视频| 国偷自产一区二区免费视频| 亚洲av无码一区二区三区天堂古代 | 在线看片免费人成视频久网下载| 亚洲综合精品香蕉久久网97| 大学生一级特黄的免费大片视频| 搜日本一区二区三区免费高清视频 | 亚洲?v无码国产在丝袜线观看|