看了大家的回復
感覺很多人還是不了解flex
特地找了篇文章解釋一下
------------------------------------------
在Qcon上,Adobe的James Ward和InfoQ.com一起分享了他推廣傳播Flex應用框架過程中所遇到的對Adobe Flex的十大誤解。
- 為了運行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桌面就是一個例子。 - 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作為其桌面應用的基礎。
- 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 - Flex不是為企業/商業應用準備的。
在過去數周里,Ward 發布了關于Oracle在Adobe Flex之上實現大量新應用的七篇系列博客文章。這些應用軟件近來公布在Oracle OpenWorld 上,其范圍涉及從銷售工具到數據庫管理和商業智能。
除了Oracle對Flex的使用,InfoQ.com也公布了一些使用Flex開發企業應用的團體。Ward也為InfoQ.com指出了很多使用Adobe Flex開發企業級應用的例子,包括:Workday, SAP, Salesforce和Business Objects。 - Flex太貴。
Ward詳述了Adobe所做的一系列努力來消除公眾對價格的誤解:Flex是為構建Web和桌面的豐富互聯網應用所提供的、免費的開發工具包,并且馬上要開源。免費SDK包含了開發者構建RIA應用所需的一切,構建出的RIA應用可在任何瀏覽器或操作系統上同樣工作。免費Flex SDK的一部分部分是一套內容廣泛的組件集,其可擴展、可更換皮膚且可訪問。你可以在Flex組件資源管理器上看到很多這樣的組件:http://www.adobe.com/devnet/flex/samples/code_explorer/
關于AMF 和其他基于文本序列化技術的比較,請看James Ward的RIA基準應用系統普查:http://www.jamesward.org/census.
Flex Builder是一個可選的Eclipse插件,這讓使用免費Flex SDK開發應用軟件更高效。它包括如集成調試、設計視圖和代碼補全等功能。
最近也采取了不少辦法來調整Flex Builder的價格。Flex Builder現正免費提供給學生及教職人員。不帶圖表組件的vanilla版本Flex Builder,其價格已降至249美元,以此更好地平衡Flex Builder的價格等級。
還有許多構建Flex應用后端基礎結構的可選項。為了利用高性能AMF數據傳輸協議,有如LiveCycle數據服務這樣的官方Adobe產品,以及如Granite數據服務這樣的眾多開源項目。使用AMF消除了以下不必要的步驟:從數據轉換為文本(SOAP, RESTful 等),傳送,然后再由文本轉換回數據。AMF還允許在線傳送中保存類型信息。 - Flex的應用程序需要專用服務器。
Ward再次為InfoQ.com講述:Flex應用程序可以運行在任何Web服務器,應用服務器和數據庫服務器之上。Flex應用程序更像是客戶端-服務器應用程序。由于邏輯是運行在Flash Player客戶端內,你需要某種方式來與服務器交互。你可以有很多不同的選擇將Flex連接到你的基礎結構。不需要任何專用庫,你可以將你的后端數據和服務暴露為RESTful、XML或SOAP,并且很容易在你的Flex應用中消費這些數據。如果選擇使用AMF二進制序列化協議,你可能需要添加一些額外的庫到你的web應用軟件。AMF只是另外一種序列化技術,就如XML或JSON 一樣,所以它可以作為你用于和后端SOA溝通的多樣方式中的一種。
- Flex很難學。
InfoQ.com社區的Leftie Friele,就 發表了評論,詳述了他的公司在學習Flex上的經驗:我們初創公司Ezmo在開創以來就在使用Flex,我們非常愉快的使用該框架。
對于Flex新手們,Ward給了一段截屏錄像,展示了一個Flex應用的構建過程,以幫助你起步。此外,還有許多關于使用Flex和Java的其他文章在 Adobe Developer Connection上 。
不需要任何Flex/Flash的預備知識,我們可以在少于兩周之內構建出我們的應用程序。Java和Flex之間的整合更是超級簡單,開始使用Flex就像是公園漫步。
說到工具支持, Flex Builder也是相當不錯。如果你熟悉Eclipse環境,你能順利起飛,不會碰到任何問題。唯一缺憾是缺少更好的持續集成工具和更好的Maven插件來構建Flex應用。 - 使用Flex,我需要重建我的整個應用。
今年1月,Bruce Eckel發表了一篇題目為 的文章。文章中他認為Java團體應該繼續使用Java好的方面,但是也應該采用其他技術來替代Java薄弱的方面。文中主要焦點是使用Adobe Flex作為用戶界面來取代傳統的Java選項(Swing、JSF等……)
Ward詳細闡述了這一概念:既然Flex應用程序只是應用程序的UI端,而后端通常都是一樣的。如果你的后端是依照SOA模式構建的,那么通常很容易將這些服務暴露給一個新的Flex UI。這將保持你現有的商業邏輯不變,無論它使用的是EJB、Spring服務還是POJO。
- Flex打破了常規的瀏覽習慣,象后退按鈕。
Ward的博文討論了后退按鈕:Flex已經內建了對后退按鈕的支持且非常容易定制,因此這已不再是問題。Flex也提供了一個簡單的辦法來處理“#”url(或命名的錨點),url隨應用狀態的變化而變化。另一個Web 1.0的整合問題業已解決。
Ward為InfoQ.com補充了更多的細節:Flex 3給應用提供了一個簡單的方式在命名的錨點中儲存狀態參數,當該URL被請求時可以根據這些參數正確地恢復狀態。有關這一特點的更多信息可以參見Flex 3特性介紹:深連接專題介紹文檔。
可訪問性對Flex應用來說一直是非常重要。因為Flash Player與Jaws及其他可訪問性技術一起工作的,因此為基于Flash的應用程序增加可訪問性的能力已經具備了。Flex框架將可訪問性納入核心框架。有許多不同方面的可訪問性,這取決于你的應用程序需要支持什么樣的損傷和殘疾。你可以在開發者指南中找到更多有關Flex可訪問性特性的信息。 - 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所能做到的。