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

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

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

    學(xué)習(xí)園地

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

    使用SWT開發(fā)WEB應(yīng)用

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

    SmartSWT簡介

    為了提高傳統(tǒng)WEB應(yīng)用的界面表現(xiàn)能力,RIA技術(shù)應(yīng)時(shí)而生,各種RIA平臺通過各種手段來提高豐富的圖形界面。如Bindows,它使用動(dòng)態(tài)HTML技術(shù)模擬Windows控件,還有Flex,直接使用Flash做為WEB應(yīng)用的表現(xiàn)層,以彌補(bǔ)DHTML技術(shù)的不足。

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

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

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

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

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

     

    安裝運(yùn)行

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

    1. 打開SmartSWTClient目錄,運(yùn)行Setup.exe安裝客戶端,該程序?qū)⒃诳蛻舳税惭b一個(gè)定制的小型JAVA虛擬機(jī)。

    2. 打開SmartSWTServer目錄,運(yùn)行Startup.bat,將運(yùn)行SmartSWT服務(wù)端,SmartSWT使用自帶的JAVA虛擬機(jī),所以您不用預(yù)先準(zhǔn)備它。

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

    開發(fā)SmartSWT應(yīng)用

    開發(fā)SmartSWT應(yīng)用基本上和開發(fā)普通的SWT應(yīng)用相同。您可以使用Eclipse的SWT可視化插件來幫助創(chuàng)建一個(gè)SWT應(yīng)用程序,比較好的有Designer及Eclipse的VisualEditor等。

    用于部署到SmartSWT服務(wù)器的SWT應(yīng)用在開發(fā)時(shí)有些小的限制,幸好這些通常都只是舉手之勞:

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

    2. 創(chuàng)建的Shell最好必須調(diào)用shell.setSize()對其尺寸進(jìn)行初始化,否則在SmartSWT將默認(rèn)呈最小化狀態(tài);

    3. 盡量不要使用非公開的API,因?yàn)橛猩倭糠枪_API,可能SmartSWT并沒有實(shí)現(xiàn)它;

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

    5. 避免初始化時(shí)一次創(chuàng)建幾十上百個(gè)控件,這樣會(huì)造成啟動(dòng)時(shí)間較長,應(yīng)在需要顯示時(shí)創(chuàng)建控件。

    部署SmartSWT應(yīng)用

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

     

    <!-- 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平臺的強(qiáng)有力競爭者

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

    其次,很多JAVA應(yīng)用開發(fā)者往往只對JAVA服務(wù)端的技術(shù)感興趣,而對表現(xiàn)層采用的HTML、JS、JSP這類標(biāo)簽語言和腳本技術(shù)并不喜歡。而事實(shí)上兼通JAVA技術(shù)、HTML和腳本技術(shù)的程序員也是少之又少。這也是造成許多傳統(tǒng)J2EE應(yīng)用的界面表現(xiàn)不佳的原因。由于SmartSWT直接采用了SWT,使的整個(gè)應(yīng)用的開發(fā)完全是純JAVA技術(shù)的開發(fā)過程,開發(fā)者不再需要與非面向?qū)ο蟮腍TML、JS、JSP等標(biāo)簽語言和腳本技術(shù)打交道,整個(gè)開發(fā)過程完全是桌面應(yīng)用的開發(fā)模式,基于事件驅(qū)動(dòng)。這使得應(yīng)用開發(fā)在技術(shù)人員的配備上要容易得多。

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

    SmartSWT的局限性

    盡管SmartSWT有諸多好處,但也存在一些局限性。 由于技術(shù)實(shí)現(xiàn)的原因,對網(wǎng)絡(luò)傳輸速度要求較高。SmartSWT在內(nèi)網(wǎng)內(nèi)訪問時(shí),其使用效果和本機(jī)上直接使用相差不多,但在外網(wǎng)上卻幾乎不具可用性。這決定了SmartSWT只能用于開發(fā)企業(yè)內(nèi)網(wǎng)應(yīng)用。

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

    選擇SmartSWT,還是...

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

    參考資料

    條評論

      posted on 2014-04-24 14:33 丘比特 閱讀(300) 評論(0)  編輯  收藏 所屬分類: Java
      主站蜘蛛池模板: 国产自产拍精品视频免费看| 中文字幕亚洲图片| 一个人看的免费高清视频日本| 国产亚洲精品久久久久秋霞| 免费人成视频在线观看网站| 成人亚洲国产va天堂| 免费看一级一级人妻片 | 国产精品免费看久久久| 亚洲第一永久在线观看| 国产免费观看a大片的网站| 最近免费mv在线观看动漫| 亚洲欧美黑人猛交群| 亚洲熟妇无码另类久久久| 一个人免费高清在线观看| 九九99热免费最新版| 亚洲二区在线视频| 亚洲国产精品无码专区| 日本一道高清不卡免费| 久久免费国产视频| 国产精品亚洲va在线观看| 亚洲综合综合在线| 亚洲综合精品香蕉久久网| 妞干网在线免费观看| 日本免费高清视频| 全部一级一级毛片免费看| 精品久久亚洲中文无码| 九月丁香婷婷亚洲综合色| 免费国产成人高清视频网站| 精品免费久久久久久久| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲无码精品浪潮| 日韩高清免费观看| 无码区日韩特区永久免费系列| GOGOGO高清免费看韩国| 国产精品亚洲一区二区三区久久 | 亚洲精品无AMM毛片| 亚洲国产精品一区二区久久| 亚洲男人av香蕉爽爽爽爽| 看全色黄大色大片免费久久| 手机看黄av免费网址| 91久久精品国产免费一区|