我的技術(shù)貼的首發(fā)地址:http://atian25.javaeye.com/

          天豬部落閣 - (ExtJS && AS3 && Java)

          專注于ExtJS && AS3 && Java

          常用鏈接

          統(tǒng)計(jì)

          FLASH

          WORK

          友情鏈接

          最新評(píng)論

          理清幾個(gè)RIA的概念及技術(shù)的選擇 (AIR,WPF,JAVA,FLEX,SLIVERLIGHT)

          轉(zhuǎn)帖自:http://blog.csdn.net/david_lv/archive/2008/03/05/2149377.aspx

          昨天去參加adobe AIR發(fā)布會(huì)

          首先申明:我不是adobe雇傭的槍手,我也從不認(rèn)識(shí)adobe的人。我只是一名被C/S和B/S長(zhǎng)期困擾希望尋找一套解決方案的人。

          昨天去參加了adobe AIR 發(fā)布會(huì)

          adobe是業(yè)界著名的客戶端展現(xiàn)工具和展現(xiàn)設(shè)計(jì)工具 提供商。

          展現(xiàn)工具:PDF、FLASH。展現(xiàn)設(shè)計(jì)工具:photoshop、Dreamwaver、FLASH。

          很多人都疑問(wèn)AIR有什么用。昨天在會(huì)場(chǎng)也有同學(xué)提出了這個(gè)問(wèn)題。既然有了AJAX 純的JS的客戶端表現(xiàn)組件包,如最近剛獲得金牛獎(jiǎng)的ZK組件包,那為何要有AIR?

          我給大家解釋解釋。大家都能看到現(xiàn)在的趨勢(shì):互聯(lián)網(wǎng)軟件在向客戶端融合,客戶端在向互聯(lián)網(wǎng)融合。

          互聯(lián)網(wǎng)企業(yè)發(fā)源于WEB世界,那么它要延伸互聯(lián)網(wǎng),必須要基于現(xiàn)在自己的優(yōu)勢(shì)和根。JS技術(shù),這種根植于網(wǎng)絡(luò)世界的技術(shù)就是最理想的選擇。使用慣了WEB應(yīng)用軟件的用戶,對(duì)于本地安裝一個(gè)軟件,本地軟件那樣的操作習(xí)慣就感到很奇怪。

          而對(duì)于習(xí)慣了使用本地軟件的用戶,現(xiàn)在開(kāi)始有了互聯(lián)網(wǎng)跨出局域網(wǎng)的業(yè)務(wù)需求了,怎么辦?一種辦法當(dāng)然是給他們另外開(kāi)發(fā)一套B/S企業(yè)管理軟件,但他們?cè)趺词褂枚疾豁樖帧?/font>

          于是AIR產(chǎn)生。讓他們能滿足互聯(lián)網(wǎng)處理,又能像本地軟件一樣操作。

          又有客官問(wèn)了,聽(tīng)過(guò)微軟也推出了一種客戶端跨互聯(lián)網(wǎng)處理的技術(shù),叫WPF和WCF。微軟是客戶端的霸主,而且微軟的 開(kāi)發(fā)工具也是一流的,adobe既不熟悉開(kāi)發(fā)工具這行當(dāng),也沒(méi)有客戶端優(yōu)勢(shì),微軟在OS層面做點(diǎn)手腳,就像當(dāng)年給netscape下點(diǎn)藥做點(diǎn)限制一 樣,AIR就沒(méi)前途了。

          但是,但是。這個(gè)世界總有但是。

          要知道,做企業(yè)管理軟件應(yīng)用,很重要的就是數(shù)據(jù)安全。要把自己的數(shù)據(jù)和業(yè)務(wù)處理放到公網(wǎng)上,就有擔(dān)憂。但是企業(yè)發(fā)展 必須跨互聯(lián)網(wǎng),有需求啊。那怎么辦?用微軟的?太不安全了。于是挑選了JAVA。但JAVA一直雄霸于服務(wù)器端,客戶端JAVA也沒(méi)有經(jīng)驗(yàn)啊。從早期的 Applet,到Swing,都以失敗告終。不能讓JAVA的服務(wù)器端配合WPF的客戶端吧?于是AIR出場(chǎng)了。

          adobe也很聰明,知道微軟這個(gè)長(zhǎng)年想擴(kuò)展到互聯(lián)網(wǎng)卻屢屢受挫的困獸,必然拼了老命也要推自己的WPF和WCF技術(shù),這是微軟未來(lái)的命啊。想在這個(gè)霸主的肩膀上吃肉,是比登天難。于是祭出微軟最害怕的一招:開(kāi)源、免費(fèi)、基于開(kāi)放技術(shù)標(biāo)準(zhǔn)、跨平臺(tái)。

          adobe不擅長(zhǎng)開(kāi)發(fā)工具的開(kāi)發(fā),那就不開(kāi)發(fā)。況且這個(gè)世界上除了微軟世界的visual studio工具外,微軟的對(duì)立陣營(yíng)就有最開(kāi)放的eclipse。eclipse已經(jīng)不僅僅是一個(gè)JAVA的開(kāi)發(fā)IDE,現(xiàn)在Ruby、PHP、C++、 Python都在它上面有插件。于是adobe也把自己插在上面。跟著程序員大潮走,讓程序員使用自己最熟悉的IDE開(kāi)發(fā)AIR。

          adobe一直擅長(zhǎng)客戶端表現(xiàn),所以adobe也沒(méi)有必要提供一個(gè)從服務(wù)器到客戶端一整套技術(shù)方案。說(shuō)白了,AIR 就是一個(gè)和AJAX組件包一個(gè)層次的解決方案。主要用于客戶端表現(xiàn)。這點(diǎn)非常重要。許多同學(xué)沒(méi)有看清這一點(diǎn),和DELPHI比,和JAVA比,和.net 比。其實(shí)AIR就專注客戶端表現(xiàn)。你的業(yè)務(wù)層完全可以用PHP、JAVA、C#來(lái)寫(xiě)。再說(shuō)了,AIR技術(shù),內(nèi)在其實(shí)就是HTML+JAVAScript, 只不過(guò)改進(jìn)了一些,換了個(gè)名字,叫MXML和ActionScript。微軟的WPF技術(shù),也是這兩個(gè)技術(shù)組成。大家都是一路子。

          PDF抓住了PC時(shí)代,F(xiàn)LASH抓住了瀏覽器時(shí)代,AIR是要抓住瀏覽器和PC融合的時(shí)代。這也是adobe的命 根,所以兩家公司都拼了命。微軟有其強(qiáng)大的現(xiàn)實(shí)客戶和研究開(kāi)發(fā)中心和營(yíng)銷(xiāo)手段,adobe則采用了最開(kāi)放最聯(lián)盟來(lái)對(duì)抗,讓微軟一家公司之力來(lái)對(duì)抗全球開(kāi)放 的程序員。

          WPF僅限于微軟平臺(tái),雖然sliverlight號(hào)稱以后也要垮MAC和LINUX平臺(tái)。但我說(shuō)的比較是AIR和WPF,而非FLEX和Sliverlight這兩種技術(shù)。

          我對(duì)FLEX和Sliverlight這兩種技術(shù)一直心存懷疑。他們到底是給什么用戶用的呢?習(xí)慣于瀏覽器的用戶?人家有AJAX組件包啊,優(yōu)秀開(kāi)源的N多,商業(yè)的也N多。習(xí)慣于本地運(yùn)行軟件的用戶?人家有AIR和WPF這兩種技術(shù)啊。

          FLEX和Sliverlight這兩種技術(shù)產(chǎn)生,我來(lái)解釋一下我自己的觀點(diǎn)。

          adobe的AIR還沒(méi)有煉成。FLASH是adobe現(xiàn)在的優(yōu)勢(shì)。要想走到目的地,F(xiàn)LASH必須是自己的跳板,于是FLEX必須作為過(guò)渡。

          而微軟呢?VISTA本來(lái)就是微軟最寄予希望的操作系統(tǒng),原生的.net framework 3.0,而且全部用.net重寫(xiě),一流的面向service的操作系統(tǒng),圓了當(dāng)年微軟COM之夢(mèng)。而且.net framework 3.0最主要的技術(shù)WPF、WCF,還有一個(gè)夫死胎中的WF,其實(shí)都是很有未來(lái)前瞻的技術(shù),但由于技術(shù)難度太大,當(dāng)然也由于太多人看透了微軟在互聯(lián)網(wǎng)戰(zhàn)略 的陌生和遲疑和舊有EXE技術(shù)思想,所以都跑到了純正的互聯(lián)網(wǎng)公司,給VISTA形成了難產(chǎn)。微軟希望能無(wú)縫且毫無(wú)體驗(yàn)差異的整合互聯(lián)網(wǎng)和本地。但是這個(gè) 過(guò)程太漫長(zhǎng)了。眼看著adobe利用FLASH做跳板,以占領(lǐng)自己未來(lái)想占領(lǐng)的位置,自己能不能到達(dá)目的地還不好說(shuō),于是在急匆匆中推出了 sliverlight。其實(shí)微軟本來(lái)沒(méi)有sliverlight研究計(jì)劃,希望借助VISTA一舉掀開(kāi)未來(lái)大幕,但VISTA不爭(zhēng)氣,沒(méi)掀好,于是必須 應(yīng)急。

          所以,奉勸開(kāi)發(fā)慣了網(wǎng)站的程序員,繼續(xù)拿起你們的AJAX,因?yàn)槟銈儾焕斫馊藗優(yōu)槭裁匆肁IR。

          對(duì)于開(kāi)發(fā)慣了EXE的程序員,繼續(xù)使用AIR或WPF來(lái)開(kāi)發(fā)你們的下一代產(chǎn)品,別想著用FLEX。習(xí)慣用微軟技術(shù)的就用WPF,習(xí)慣用非微軟技術(shù)的,就選擇AIR。就這么簡(jiǎn)單。

          我給大家列了一個(gè)對(duì)比列表,大家可以理解這個(gè)新技術(shù)和過(guò)去技術(shù)的相似和關(guān)聯(lián)。

          AIR runtime=.net framework=JVM

          AIR=WPF=JAVA Application

          FLEX=Sliverlight=JAVA Applet

          至于Google Gears,是互聯(lián)網(wǎng)向桌面融合的產(chǎn)物,而我們今天討論的是桌面向互聯(lián)網(wǎng)融合。雖然Google Gears、JAVA JSF、Adobe AIR/FLEX、微軟WPF/Sliverlight都是RIA的解決方案。但都是各自從各自的優(yōu)勢(shì)出發(fā)發(fā)展的技術(shù)方案

          最后結(jié)尾總結(jié)關(guān)鍵幾句:

          1 AIR是給習(xí)慣開(kāi)發(fā)EXE程序員準(zhǔn)備的非微軟技術(shù)的互聯(lián)網(wǎng)解決方案。習(xí)慣微軟技術(shù)的請(qǐng)離開(kāi),習(xí)慣網(wǎng)站的請(qǐng)離開(kāi)

          2 AIR工作在表現(xiàn)層。AIR只是一個(gè)客戶端表現(xiàn),和AJAX是一樣的。都是HTML+JAVASCIRPT。不要奢望它能做各種業(yè)務(wù)處理和運(yùn)算。你的業(yè)務(wù) 可以包裝成webservice,也可以是PHP或JSP或asp.net頁(yè)面,調(diào)用方式可以是webservice,可以是httpservice,可 以是remoting。這樣你的業(yè)務(wù)層就可以和表現(xiàn)層AIR交流數(shù)據(jù)了

          3 AIR IDE只是HTML+AVACRIPT設(shè)計(jì)和調(diào)試工具,所以你也別奢望AIR IDE能象JAVA和C#的IDE環(huán)境那樣強(qiáng)大。你過(guò)去怎么設(shè)計(jì)和調(diào)試HTML+JAVASCRIPT,那么你現(xiàn)在仍然保持那種心態(tài)。

           4 AIR不是FLASH。他們是兩種不同的應(yīng)用目的和技術(shù)發(fā)展方向。不要用FLASH開(kāi)發(fā)企業(yè)管理軟件,也不要用AIR開(kāi)發(fā)多媒體。雖然能,但不擅長(zhǎng)(就如 你拿C來(lái)開(kāi)發(fā)WEB)。AIR不需要運(yùn)行在瀏覽器中,不需要使用FLASH容器。AIR有自己的容器和運(yùn)行環(huán)境。AIR和你的EXE是一樣的安裝和執(zhí)行。

          5AIR和WPF都處于不成熟期,可以作項(xiàng)目,但不要把寶押在他們上面做下一代產(chǎn)品線(預(yù)計(jì)下下版應(yīng)該可以進(jìn)行企業(yè) 下一代產(chǎn)品線開(kāi)發(fā),一般都是軟件3個(gè)版本后才強(qiáng)壯穩(wěn)定起來(lái),按照競(jìng)爭(zhēng)的激烈程度,這個(gè)第三個(gè)正式版本時(shí)間會(huì)在明年的上半年)。不過(guò)你也不要等待他們成熟后 再做再研究,這樣的等待就如同2001年等待JAVA成熟一樣。現(xiàn)在JAVA是成熟了,但是你還有機(jī)會(huì)么?

          6不要懷疑AIR和WPF是不是未來(lái)。業(yè)界早有共識(shí),這就是未來(lái)。不要在GOOGLE WEBOS和客戶端OS之間選擇來(lái)選擇去,如果你是網(wǎng)站開(kāi)發(fā)人員,安心研究你的GOOGLE RIA技術(shù)。不要懷疑是跟微軟還是跟adobe。如果你一直在微軟的技術(shù)圈子中行走,那么你安心用你的WPF好了,都是未來(lái)。

          7有許多人問(wèn)起來(lái)了SEO在AIR和FLEX上的缺陷。說(shuō)slivelight支持SEO和搜索友好。我想說(shuō)的一句是:開(kāi)發(fā)企業(yè)管理軟件,怕的就是搜索,怕的就是企業(yè)數(shù)據(jù)被搜索引擎搜索到。不能搜索到才好呢

          8AIR為過(guò)去的EXE程序員提供了自動(dòng)版本檢測(cè)和自動(dòng)升級(jí)的API,這是讓C/S程序員非常興奮的一件事。回想當(dāng) 年,客戶端版本不一致,出了不少怪異的事情。AIR也提供了離線后暫時(shí)保存數(shù)據(jù)到本地內(nèi)嵌在AIR runtime中的sqlite(操作和平常SQL一樣),繼續(xù)操作軟件,連線后同步數(shù)據(jù)。OK

          9 你如果沒(méi)有開(kāi)發(fā)過(guò)MVC架構(gòu),沒(méi)有用過(guò)COM多層開(kāi)發(fā),那么你不會(huì)明白業(yè)務(wù)層和表現(xiàn)層的分工和通訊的。你會(huì)一直想弄清楚怎么在AIR中寫(xiě)SQL語(yǔ)句或 JAVA語(yǔ)句。你也一直會(huì)想在servlet中寫(xiě)JAVASCRIPT和HTML代碼。你還處在漿糊代碼階段,建議給自己的代碼技術(shù)升升級(jí)。

          想問(wèn)我為什么關(guān)注AIR嗎?

          因?yàn)槲乙恢睉?zhàn)斗在行業(yè)管理軟件的開(kāi)發(fā)上。我對(duì)于開(kāi)發(fā)一套C/S,一套B/S,這樣極耗費(fèi)開(kāi)發(fā)成本開(kāi)發(fā)時(shí)間和維護(hù)成本 的開(kāi)發(fā)方式煩透了,要讓兩者操作習(xí)慣和功能都保持一致,難。如果有了BUG,兩個(gè)產(chǎn)品是兩個(gè)開(kāi)發(fā)團(tuán)隊(duì),BUG都出在不同的地方,分別修改。讓一個(gè)公司維護(hù) 兩套人馬兩個(gè)產(chǎn)品,在中國(guó)大部分都是小軟件作坊的現(xiàn)狀下,哪個(gè)都做不好。不如做一個(gè)既是C/S又是B/S的軟件。

          那是多么美好的事情啊。

          posted on 2008-08-25 10:20 天豬 閱讀(2124) 評(píng)論(2)  編輯  收藏

          評(píng)論

          # re: 理清幾個(gè)RIA的概念及技術(shù)的選擇 (AIR,WPF,JAVA,FLEX,SLIVERLIGHT) 2009-05-18 11:02 刀光劍影

          講的很好,老手了!  回復(fù)  更多評(píng)論   

          # re: 理清幾個(gè)RIA的概念及技術(shù)的選擇 (AIR,WPF,JAVA,FLEX,SLIVERLIGHT) 2014-12-22 09:51 水中魚(yú)

          RIA對(duì)于開(kāi)發(fā)富客戶端還是有非常大的優(yōu)勢(shì),比如管理系統(tǒng)開(kāi)發(fā),需求大量的客戶端交互,而非一個(gè)網(wǎng)頁(yè)瀏覽那么簡(jiǎn)單,在大量的客戶端交互處理上,使用大量的前臺(tái)代碼(JS),會(huì)為前臺(tái)的開(kāi)發(fā)和維護(hù)造成諸多困難,增加后期的維護(hù)成本,而RIA技術(shù)的出現(xiàn),為BS模式管理系統(tǒng)開(kāi)發(fā)帶來(lái)了一線曙光。  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 应用必备| 教育| 绥德县| 永嘉县| 修文县| 曲沃县| 华阴市| 沧源| 南宁市| 遂宁市| 师宗县| 德昌县| 咸阳市| 若尔盖县| 武功县| 温宿县| 东莞市| 凤冈县| 黑水县| 东兴市| 万载县| 中西区| 芦山县| 遂平县| 宁河县| 西安市| 太和县| 景洪市| 进贤县| 筠连县| 广灵县| 夏邑县| 镇坪县| 维西| 彰武县| 晋江市| 宜昌市| 琼海市| 陆良县| 阳东县| 田阳县|