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

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

          專注于ExtJS && AS3 && Java

          常用鏈接

          統(tǒng)計

          FLASH

          WORK

          友情鏈接

          最新評論

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

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

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

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

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

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

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

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

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

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

          而對于習(xí)慣了使用本地軟件的用戶,現(xiàn)在開始有了互聯(lián)網(wǎng)跨出局域網(wǎng)的業(yè)務(wù)需求了,怎么辦?一種辦法當(dāng)然是給他們另外開發(fā)一套B/S企業(yè)管理軟件,但他們怎么使用都不順手。

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

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

          但是,但是。這個世界總有但是。

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

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

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

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

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

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

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

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

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

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

          所以,奉勸開發(fā)慣了網(wǎng)站的程序員,繼續(xù)拿起你們的AJAX,因為你們不理解人們?yōu)槭裁匆肁IR。

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

          我給大家列了一個對比列表,大家可以理解這個新技術(shù)和過去技術(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)勢出發(fā)發(fā)展的技術(shù)方案

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

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

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

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

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

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

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

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

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

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

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

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

          那是多么美好的事情啊。

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

          評論

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

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

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 秭归县| 宁强县| 通榆县| 胶州市| 赤峰市| 海盐县| 赞皇县| 榆社县| 绥滨县| 东宁县| 龙南县| 顺昌县| 海城市| 军事| 柯坪县| 蓬溪县| 温宿县| 西和县| 樟树市| 句容市| 连山| 东兰县| 恭城| 昌乐县| 榕江县| 盘山县| 庆云县| 大理市| 杨浦区| 绵竹市| 怀安县| 桦川县| 苍山县| 乐至县| 九龙坡区| 江达县| 龙川县| 临颍县| 白山市| 丘北县| 田林县|