對Adobe Flex的十大誤解

對Adobe Flex的十大誤解

作者 Jon Rose譯者 王軍 發佈於 2007年12月14日 上午7時10分

社區
Java
主題
Web框架,
富客戶端/桌面
標籤
Adobe,
Flex,
Flash
在Qcon上,Adobe的James Ward和InfoQ.com一起分享了他推廣傳播Flex應用框架過程中所遇到的對Adobe Flex的十大誤解。
  1. 爲了運行Flex應用程序用戶需要安裝新東西。 Ward向InfoQ.com獨家論述了Flash採用比例和Flex編程模型:
    Flex 2和Flex 3必需運行在Flash Player 9上。Flash Player 9運行時目前已經被安裝在世界94%的計算機上:http://www.adobe.com/products/player_census/flashplayer/version_penetration.html Flex 2和Flex 3的應用程序執行在Flash Player 9環境下。Flex應用程序構建在本地Flash Player API之上,如矢量圖形、位圖處理和網絡(基於瀏覽器網絡協議棧)。Flex框架增加了如日期選擇器、數據表格、圖表等可重用組件。編譯Flex應用程序的結果產生一個SWF文件,它是供Flash Player使用的二進制字節碼格式。SWF文件包含的是Flex框架代碼和項目自定義代碼的字節碼。Flex編譯器對字節碼進行了優化,只將要用的類編譯到SWF文件中。 對於桌面應用軟件,Adobe的目標是推出自己名爲Adobe AIR的新桌面運行時,希望能像Web運行時一樣普及。Adobe AIR 1.0版本將於2008年初發布。目前,從labs.adobe.com上可得到的AIR是測試版。許多公司都已經在使用AIR構建產品軟件。eBay的應用程序eBay桌面就是一個例子。
  2. Flash Player是100%私有的。 Ward繼續爲InfoQ.com做出說明:
    Flash Player的核心是Tamarin虛擬機,這是Mozilla旗下的一個開源項目。而SWF文件格式不是完全開放的,它是由osflash.org社區備案的。已有很多讀寫SWF文件的開源產品。Flash Player產品的發展方向在很大程度上受該社區及其需求所影響。Flash Player的核心語言是ECMAScript 262的一個實現,ECMAScript 262是JavaScript的規範。Flex還將CSS用於組件/應用的樣式。Adobe AIR使用web標準以及開源技術如Tamarin、Webkit和SQLite作爲其桌面應用的基礎。
  3. Flash是爲設計者、視頻準備的,而且讓人討厭。 2007年7月Ward在博客文章“我是如何克服對Flash的恐懼”中指出:
    毋庸置疑的,Flash的能力被濫用了。彈出窗口、跳過介紹和煩人的廣告橫行於我們的屏幕上。我曾聽人們說過不應該因爲一個宗教被濫用而否定它。這一格言同樣適用於技術。FLASH不能因爲有些人拿它來做令人討厭的東西而遭到摒棄。畢竟e-mail並沒有因爲垃圾郵件氾濫而消失。
    Ward爲InfoQ.com詳細闡述了該主題:
    傳統的FLASH是用爲設計者提供的基於時間軸的工具構建的。Flex是用於構建基於Flash的內容/應用的開發者工具套件。設計者和開發者通過共享兩個工具之間的資源能夠攜手合作。Flex增加了一個全面的組件庫: http://www.adobe.com/go/flex_explorer_a pp http://www.adobe.com/cfusion/exchange/index. cfm?event=productHome&exc=15&loc=en_us
  4. Flex不是爲企業/商業應用準備的。 在過去數週裏,Ward 發佈了關於Oracle在Adobe Flex之上實現大量新應用的七篇系列博客文章。這些應用軟件近來公佈在Oracle OpenWorld 上,其範圍涉及從銷售工具到數據庫管理和商業智能。 除了Oracle對Flex的使用,InfoQ.com也公佈了一些使用Flex開發企業應用的團體。Ward也爲InfoQ.com指出了很多使用Adobe Flex開發企業級應用的例子,包括:Workday, SAP, Salesforce和Business Objects。
  5. Flex太貴。 Ward詳述了Adobe所做的一系列努力來消除公衆對價格的誤解:
    Flex 是爲構建Web和桌面的豐富互聯網應用所提供的、免費的開發工具包,並且馬上要開源。免費SDK包含了開發者構建RIA應用所需的一切,構建出的RIA應用可在任何瀏覽器或操作系統上同樣工作。免費Flex SDK的一部分部分是一套內容廣泛的組件集,其可擴展、可更換皮膚且可訪問。你可以在Flex組件資源管理器上看到很多這樣的組件:http://www.adobe.com/devnet/flex/samples/code_explorer/ Flex Builder是一個可選的Eclipse插件,這讓使用免費Flex SDK開發應用軟件更高效。它包括如集成調試、設計視圖和代碼補全等功能。 最近也採取了不少辦法來調整Flex Builder的價格。Flex Builder現正免費提供給學生及教職人員。不帶圖表組件的vanilla版本Flex Builder,其價格已降至249美元,以此更好地平衡Flex Builder的價格等級。 還有許多構建Flex應用後端基礎結構的可選項。爲了利用高性能AMF數據傳輸協議,有如LiveCycle數據服務這樣的官方Adobe產品,以及如 Granite數據服務這樣的衆多開源項目。使用AMF消除了以下不必要的步驟:從數據轉換爲文本(SOAP, RESTful 等),傳送,然後再由文本轉換回數據。AMF還允許在線傳送中保存類型信息。
    關於AMF 和其他基於文本序列化技術的比較,請看James Ward的RIA基準應用系統普查:http://www.jamesward.org/census.
  6. Flex的應用程序需要專用服務器。 Ward再次爲InfoQ.com講述:
    Flex 應用程序可以運行在任何Web服務器,應用服務器和數據庫服務器之上。Flex應用程序更像是客戶端-服務器應用程序。由於邏輯是運行在Flash Player客戶端內,你需要某種方式來與服務器交互。你可以有很多不同的選擇將Flex連接到你的基礎結構。不需要任何專用庫,你可以將你的後端數據和服務暴露爲RESTful、XML或SOAP,並且很容易在你的Flex應用中消費這些數據。如果選擇使用AMF二進制序列化協議,你可能需要添加一些額外的庫到你的web應用軟件。AMF只是另外一種序列化技術,就如XML或JSON 一樣,所以它可以作爲你用於和後端SOA溝通的多樣方式中的一種。
  7. Flex很難學。 InfoQ.com社區的Leftie Friele,就InfoQ.com文章"誰在使用Flex?" 發表了評論,詳述了他的公司在學習Flex上的經驗:
    我們初創公司Ezmo在開創以來就在使用Flex,我們非常愉快的使用該框架。 不需要任何Flex/Flash的預備知識,我們可以在少於兩週之內構建出我們的應用程序。Java和Flex之間的整合更是超級簡單,開始使用Flex就像是公園漫步。 說到工具支持, Flex Builder也是相當不錯。如果你熟悉Eclipse環境,你能順利起飛,不會碰到任何問題。唯一缺憾是缺少更好的持續集成工具和更好的Maven插件來構建Flex應用。
    對於Flex新手們,Ward給了一段截屏錄像,展示了一個Flex應用的構建過程,以幫助你起步。此外,還有許多關於使用Flex和Java的其他文章在 Adobe Developer Connection上 。
  8. 使用Flex,我需要重建我的整個應用。 今年1月,Bruce Eckel發表了一篇題目爲"混合Java" 的文章。文章中他認爲Java團體應該繼續使用Java好的方面,但是也應該採用其他技術來替代Java薄弱的方面。文中主要焦點是使用Adobe Flex作爲用戶界面來取代傳統的Java選項(Swing、JSF等……) Ward詳細闡述了這一概念:
    既然Flex應用程序只是應用程序的UI端,而後端通常都是一樣的。如果你的後端是依照SOA模式構建的,那麼通常很容易將這些服務暴露給一個新的Flex UI。這將保持你現有的商業邏輯不變,無論它使用的是EJB、Spring服務還是POJO。
  9. Flex打破了常規的瀏覽習慣,象後退按鈕。 Ward的博文討論了後退按鈕:
    Flex已經內建了對後退按鈕的支持且非常容易定製,因此這已不再是問題。Flex也提供了一個簡單的辦法來處理“#”url(或命名的錨點),url隨應用狀態的變化而變化。另一個Web 1.0的整合問題業已解決。
    Ward爲InfoQ.com補充了更多的細節:
    Flex 3給應用提供了一個簡單的方式在命名的錨點中儲存狀態參數,當該URL被請求時可以根據這些參數正確地恢復狀態。有關這一特點的更多信息可以參見Flex 3特性介紹:深連接專題介紹文檔。 可訪問性對Flex應用來說一直是非常重要。因爲Flash Player與Jaws及其他可訪問性技術一起工作的,因此爲基於Flash的應用程序增加可訪問性的能力已經具備了。Flex框架將可訪問性納入核心框架。有許多不同方面的可訪問性,這取決於你的應用程序需要支持什麼樣的損傷和殘疾。你可以在開發者指南中找到更多有關Flex可訪問性特性的信息。
  10. Flex能做到的,Ajax也能做到。 Ward解釋說:
    Flex RIA和Ajax不是非此即彼的關係。像Google Finance網站就展示瞭如何同時使用Flex和Ajax。Ajax非常適合以內容爲中心的應用,而Flex則適合於互動,媒體和數據爲中心的應用。如果你的應用介於這兩者之間,那麼你可以用Flex Ajax Bridge來結合這兩種技術。在 Flex 3裏,Flex Ajax Bridge已經直接集成到SDK中。如果使用的Flex 2,你將需要單獨下載Flex Ajax Bridge。
    此外,InfoQ.com社區的Michael Marth講述了他的小組爲什麼選擇Flex:
    我們即將推出的網上約會站點viibee.com使用的就是Flex 2 理由是:付出相同的努力,Flex使我們能夠創建的用戶體驗遠遠超過我們用Javascript/Ajax所能做到的。

InfoQ.com社區中是否對Adobe Flex框架也有這些誤解呢?是否還有其他阻止你使用Flex應用框架的阻礙是Adobe尚未解釋的?

查看英文原文:Top 10 Adobe Flex Misconceptions
譯者簡介:王軍,長期從事軟件開發工作,實際項目偏重於JBOSS平臺上構建網管軟件。對於性能測試工具有較多的關注,關心軟件技術和相關工具的動態,將其中相對成熟的技術和工具應用到實際的項目之中。長期擔任技術管理和項目管理工作,一直關心開源軟件的發展動態以及軟件過程和敏捷開發的實踐探索。參與InfoQ中文站內容建設,請郵件至china-editorial[at]infoq.com
發佈了44 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章