從不同的角度分析Flex的優缺點
技術角度:
(1)具備了RIA時代富客戶端的優點(C/S+B/S)
(2)支持多種服務器語言(JAVA、.NET、PHP)及主流框架(Spring、Hibernate)
(3)與Java結合后相當強大,能充分利用Java的資源背景
(4)擁有豐富的組件和第三方組件,對企業級的數據匯總和業務流程展現力較強悍
(5)借助開源的力量,擁有眾多民間組織和牛人支持
(6)Adobe公司(還有MM多年積累)的強大背景
(7)源於Flash的天生麗質,輕松使用多媒體資源,動態交互性強
(8)借助FlashPlayer的安裝普及度,輕松實現跨瀏覽器跨平台
(9)良好的架構設計和制作精良的文檔示例(明年FLEX4同步推出中文版)
(10)借助於插件豐富的Eclipse開發平台並擁有獨立的IDE
(11)框架設計重用性高,有利於模塊化設計
(12)近幾年發展態勢良好,獲得了廣泛認可,產品和技術也越發成熟
開發者角度:
(1)開源,透明
(2)基於Eclipse開發平台,易上手,且插件豐富
(3)基於Eclipse平台,開發調試方便(FB4中的條件斷點)
(4)ActionScript語言與Java的融合度和相似度較高,易學易用
(5)MXML標簽與XML相似,邏輯清晰可讀性強
(6)架構設計良好,耦合度低,有利於組件重用
(7)無需針對不同瀏覽器編寫代碼,擺脫編寫和調試的噩夢(針對JS說的)
(8)類似VB的可視化拖拽組件,快速創建界面
(9)方便定制及使用第三方的皮膚和樣式,無需美工也有好效果
(10)支持多媒體資源,輕易開發動態交互性強的界面
(11)眾多的RPC組件保障對后台數據訪問的安全性和效率
(12)文檔示例豐富,通過網絡可以獲取大量的學習資源
(13)近兩年發展態勢良好,前景光明
企業角度:
(1)開源,免費
(2)具備了RIA時代富客戶端的優點(C/S+B/S)
(3)項目和組件的重用性高,易於資源積累和快速構建
(4)Flex提供了與其他語言的結合,能廣泛利用已有的資源
(5)界面華麗,客戶認可度高
(6)學習曲線一般,培訓成本低
用戶角度:
(1)部署和更新方便
(2)界面漂亮,交互性強
(3)安全
缺點:
(1)不擅長處理復雜的業務流程,主要還是適合展現(Flex不是萬能的)
(2)繼承了Flash的諸多優點,卻唯獨丟掉了Flash的小巧輕盈(減肥是永恆的話題)
(3)目前尚沒有比較好的減肥策略,帶寬較好時這不是問題(不是一般的卡。。。)
(4)對服務器和客戶端的硬件設備都有一定要求(CPU和內存占用很生猛。。。)
(5)運行期內存泄露狀況嚴重,盡管可以通過一定手段改善(這個很崩潰)
(6)對一些較專業的領域涉及較少,需要第三方組件支持(比如地質方面的)
(7)Adobe公司對中國分部的支持不夠(感覺宣講和文檔都做得不夠)
(8)搜索引擎對swf文件的支持不夠(Adobe一直在努力)
(9)與以往瀏覽習慣不同,比如右鍵被屏蔽,圖片無法保存(可以改善)
鑒於Flex生成的swf文件太肥是其主要缺點(加載慢,運行慢,內存占用多),我就主要從減肥和優化的角度來說一下使用心得。
使用心得:
(1)Flex只是前台展現,需要搭配強大的后台(注意前后台的均衡和優化)
(2)考慮異步加載(比如分步加載外部資源)
(3)界面推薦使用相對布局,合理組合,避免多余嵌套
(4)界面加載圖片推薦使用外部加載方式,盡可能多使用矢量圖形
(5)規范CSS樣式表,尤其注意使用的外部字體大小
(6)使用額外的皮膚和特效時需要綜合考慮生成的文件大小和執行效率
(7)適當地考慮延時加載策略,主界面只顯示必要的內容
(8)規范編碼,提高執行效率,避免內存泄露
(9)使用RSL和Module和其他有效方式努力減肥
(10)盡可能重寫一些繼承底層類的組件,執行效率更好
(11)慎重使用重量級組件(比如DataGrid,AdvancedDataGrid)