糾正常見AdobeFlex誤解
本文和大家重點(diǎn)討論一下人們對AdobeFlex的一些誤解,通過對這些誤解的學(xué)習(xí)你會(huì)對AdobeFlex的概念有更加深刻的認(rèn)識,希望本文的介紹能讓你有所收獲。
對AdobeFlex的誤解
在Qcon上,Adobe的JamesWard和InfoQ.com一起分享了他推廣傳播Flex應(yīng)用框架過程中所遇到的對AdobeFlex的十大誤解。
為了運(yùn)行Flex應(yīng)用程序用戶需要安裝新東西。
Ward向InfoQ.com獨(dú)家論述了Flash采用比例和Flex編程模型:
Flex2和Flex3必需運(yùn)行在FlashPlayer9上。FlashPlayer9運(yùn)行時(shí)目前已經(jīng)被安裝在世界94%的計(jì)算機(jī)上:http://www.adobe.com/products/player_census/flashplayer/version_penetration.html
Flex2和Flex3的應(yīng)用程序執(zhí)行在FlashPlayer9環(huán)境下。Flex應(yīng)用程序構(gòu)建在本地FlashPlayerAPI之上,如矢量圖形、位圖處理和網(wǎng)絡(luò)(基于瀏覽器網(wǎng)絡(luò)協(xié)議棧)。Flex框架增加了如日期選擇器、數(shù)據(jù)表格、圖表等可重用組件。編譯Flex應(yīng)用程序的結(jié)果產(chǎn)生一個(gè)SWF文件,它是供FlashPlayer使用的二進(jìn)制字節(jié)碼格式。SWF文件包含的是Flex框架代碼和項(xiàng)目自定義代碼的字節(jié)碼。Flex編譯器對字節(jié)碼進(jìn)行了優(yōu)化,只將要用的類編譯到SWF文件中。
對于桌面應(yīng)用軟件,Adobe的目標(biāo)是推出自己名為AdobeAIR的新桌面運(yùn)行時(shí),希望能像Web運(yùn)行時(shí)一樣普及。AdobeAIR1.0版本將于2008年初發(fā)布。目前,從labs.adobe.com上可得到的AIR是測試版。許多公司都已經(jīng)在使用AIR構(gòu)建產(chǎn)品軟件。eBay的應(yīng)用程序eBay桌面就是一個(gè)例子。
◆FlashPlayer是100%私有的。
Ward繼續(xù)為InfoQ.com做出說明:
FlashPlayer的核心是Tamarin虛擬機(jī),這是Mozilla旗下的一個(gè)開源項(xiàng)目。而SWF文件格式不是完全開放的,它是由osflash.org社區(qū)備案的。已有很多讀寫SWF文件的開源產(chǎn)品。FlashPlayer產(chǎn)品的發(fā)展方向在很大程度上受該社區(qū)及其需求所影響。FlashPlayer的核心語言是ECMAScript262的一個(gè)實(shí)現(xiàn),ECMAScript262是JavaScript的規(guī)范。Flex還將CSS用于組件/應(yīng)用的樣式。AdobeAIR使用web標(biāo)準(zhǔn)以及開源技術(shù)如Tamarin、Webkit和SQLite作為其桌面應(yīng)用的基礎(chǔ)。
◆Flash是為設(shè)計(jì)者、視頻準(zhǔn)備的,而且讓人討厭。
2007年7月Ward在博客文章“我是如何克服對Flash的恐懼”中指出:
毋庸置疑的,F(xiàn)lash的能力被濫用了。彈出窗口、跳過介紹和煩人的廣告橫行于我們的屏幕上。我曾聽人們說過不應(yīng)該因?yàn)橐粋€(gè)宗教被濫用而否定它。這一格言同樣適用于技術(shù)。FLASH不能因?yàn)橛行┤四盟鼇碜隽钊擞憛挼臇|西而遭到摒棄。畢竟e-mail并沒有因?yàn)槔]件泛濫而消失。
Ward為InfoQ.com詳細(xì)闡述了該主題:
傳統(tǒng)的FLASH是用為設(shè)計(jì)者提供的基于時(shí)間軸的工具構(gòu)建的。Flex是用于構(gòu)建基于Flash的內(nèi)容/應(yīng)用的開發(fā)者工具套件。設(shè)計(jì)者和開發(fā)者通過共享兩個(gè)工具之間的資源能夠攜手合作。Flex增加了一個(gè)全面的組件庫:
http://www.adobe.com/go/flex_explorer_app
http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=15&loc=en_us
◆Flex不是為企業(yè)/商業(yè)應(yīng)用準(zhǔn)備的。
在過去數(shù)周里,Ward發(fā)布了關(guān)于Oracle在AdobeFlex之上實(shí)現(xiàn)大量新應(yīng)用的七篇系列博客文章。這些應(yīng)用軟件近來公布在OracleOpenWorld上,其范圍涉及從銷售工具到數(shù)據(jù)庫管理和商業(yè)智能。
除了Oracle對Flex的使用,InfoQ.com也公布了一些使用Flex開發(fā)企業(yè)應(yīng)用的團(tuán)體。Ward也為InfoQ.com指出了很多使用AdobeFlex開發(fā)企業(yè)級應(yīng)用的例子,包括:Workday,SAP,Salesforce和BusinessObjects。
◆Flex太貴。
Ward詳述了Adobe所做的一系列努力來消除公眾對價(jià)格的誤解:
Flex是為構(gòu)建Web和桌面的豐富互聯(lián)網(wǎng)應(yīng)用所提供的、免費(fèi)的開發(fā)工具包,并且馬上要開源。免費(fèi)SDK包含了開發(fā)者構(gòu)建RIA應(yīng)用所需的一切,構(gòu)建出的RIA應(yīng)用可在任何瀏覽器或操作系統(tǒng)上同樣工作。免費(fèi)FlexSDK的一部分部分是一套內(nèi)容廣泛的組件集,其可擴(kuò)展、可更換皮膚且可訪問。你可以在Flex組件資源管理器上看到很多這樣的組件:http://www.adobe.com/devnet/flex/samples/code_explorer/
FlexBuilder是一個(gè)可選的Eclipse插件,這讓使用免費(fèi)FlexSDK開發(fā)應(yīng)用軟件更高效。它包括如集成調(diào)試、設(shè)計(jì)視圖和代碼補(bǔ)全等功能。
最近也采取了不少辦法來調(diào)整FlexBuilder的價(jià)格。FlexBuilder現(xiàn)正免費(fèi)提供給學(xué)生及教職人員。不帶圖表組件的vanilla版本FlexBuilder,其價(jià)格已降至249美元,以此更好地平衡FlexBuilder的價(jià)格等級。
還有許多構(gòu)建Flex應(yīng)用后端基礎(chǔ)結(jié)構(gòu)的可選項(xiàng)。為了利用高性能AMF數(shù)據(jù)傳輸協(xié)議,有如LiveCycle數(shù)據(jù)服務(wù)這樣的官方Adobe產(chǎn)品,以及如Granite數(shù)據(jù)服務(wù)這樣的眾多開源項(xiàng)目。使用AMF消除了以下不必要的步驟:從數(shù)據(jù)轉(zhuǎn)換為文本(SOAP,RESTful等),傳送,然后再由文本轉(zhuǎn)換回?cái)?shù)據(jù)。AMF還允許在線傳送中保存類型信息。
關(guān)于AMF和其他基于文本序列化技術(shù)的比較,請看JamesWard的RIA基準(zhǔn)應(yīng)用系統(tǒng)普查:http://www.jamesward.org/census.
◆Flex的應(yīng)用程序需要專用服務(wù)器。
Ward再次為InfoQ.com講述:
Flex應(yīng)用程序可以運(yùn)行在任何Web服務(wù)器,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之上。Flex應(yīng)用程序更像是客戶端-服務(wù)器應(yīng)用程序。由于邏輯是運(yùn)行在FlashPlayer客戶端內(nèi),你需要某種方式來與服務(wù)器交互。你可以有很多不同的選擇將Flex連接到你的基礎(chǔ)結(jié)構(gòu)。不需要任何專用庫,你可以將你的后端數(shù)據(jù)和服務(wù)暴露為RESTful、XML或SOAP,并且很容易在你的Flex應(yīng)用中消費(fèi)這些數(shù)據(jù)。如果選擇使用AMF二進(jìn)制序列化協(xié)議,你可能需要添加一些額外的庫到你的web應(yīng)用軟件。AMF只是另外一種序列化技術(shù),就如XML或JSON一樣,所以它可以作為你用于和后端SOA溝通的多樣方式中的一種。
【編輯推薦】