Flex 3權(quán)威指南

出版時(shí)間:2009-3-1  出版社:人民郵電出版社  作者:(美)塔伯(Tapper,J.)  頁(yè)數(shù):502  譯者:楊博,杜昱宏  
Tag標(biāo)簽:無(wú)  

前言

  Adobe Flex作為一種跨操作系統(tǒng)和瀏覽器的開源框架,已經(jīng)成為目前開發(fā)RIA最炙手可熱的技術(shù)!本書是Adobe公司官方培訓(xùn)教材,通過一個(gè)完整的貼近實(shí)戰(zhàn)的網(wǎng)上雜貨店應(yīng)用,用課程的形式,使讀者身臨其境地在40個(gè)小時(shí)內(nèi)輕松掌握Flex開發(fā)涉及的各種技術(shù)和技巧。學(xué)會(huì)構(gòu)建用戶體驗(yàn)絕佳的專業(yè)級(jí)應(yīng)用程序。書中詳細(xì)介紹了Flex BIJilder、AIR、MXML-ActiollScript的概念,用戶與后臺(tái)數(shù)據(jù)交互的各種方式以及這些方式之間的區(qū)別,同時(shí)還討論了如何使用Flex組件,如何編寫你自己的Flex組件。

內(nèi)容概要

  本書是Adobe公司官方教程,以課程的形式詳細(xì)介紹了如何用Flex 3開發(fā)一個(gè)完整的界面華麗的網(wǎng)上雜貨店應(yīng)用程序,其中包括一個(gè)用于查看銷售細(xì)節(jié)實(shí)時(shí)圖的管理圖表,以及一個(gè)用于添加或編輯網(wǎng)上商店中要銷售商品的數(shù)據(jù)輸入程序。書中詳細(xì)介紹了Flex 3的相關(guān)知識(shí)點(diǎn),具體包括構(gòu)建、部署和調(diào)試RIA,使用功能強(qiáng)大的MXML語(yǔ)言布置應(yīng)用程序,使用MXML和ActionScript構(gòu)建自定義的UI組件,使用XML、基于SOAP的Web服務(wù)和遠(yuǎn)程調(diào)用協(xié)議AMF連接到數(shù)據(jù)等。  本書適合各層次Flash和Flex開發(fā)人員閱讀。

作者簡(jiǎn)介

JeffcTapper,Adobe技術(shù)社區(qū)最有影響力的專家之一,擁有豐富的Web開發(fā)經(jīng)驗(yàn),客戶包括摩根士丹利、IBM、道瓊斯等公司。他還是WebcDevelopers&DesignerscJournal雜志的編委。
MichaelcLabriola,Adobe技術(shù)社區(qū)最著名的專家之一,是Adobe開發(fā)人員中心的重要撰稿人,也是Adobe技術(shù)郵件列表中最受歡迎的“大俠”。除本書外,他還與JeffcTapper合著了《AIR權(quán)威指南》一書(人民郵電出版社即將出版)。
MatthewcBoles,Adobe公司客戶培訓(xùn)團(tuán)隊(duì)的技術(shù)主管,他還參與設(shè)計(jì)了Adobe開發(fā)領(lǐng)域的官方課程。
JamescTalbot,Adobe公司資深工程師,有豐富的Flex開發(fā)和培訓(xùn)經(jīng)驗(yàn),幫助全世界許多用戶使用Adobe技術(shù)創(chuàng)建了各種重要應(yīng)用。他也是ObjectcOrientedcActionScriptc2.0一書的作者。

書籍目錄

第1課 理解RIA1.1 理解計(jì)算機(jī)應(yīng)用程序的演化過程1.2 超越基于頁(yè)面的架構(gòu)1.3 明確RIA的優(yōu)勢(shì)1.3.1 企業(yè)經(jīng)理1.3.2 IT組織1.3.3 終端用戶1.4 各種RIA技術(shù)1.4.1 Ajax1.4.2 Flash1.4.3 Flex1.4.4 WPF、XAML、Silverlight和Expression1.5 學(xué)習(xí)收獲第2課 開始2.1 開始Flex應(yīng)用程序開發(fā)2.2 創(chuàng)建項(xiàng)目和MXML應(yīng)用程序2.3 理解Flex Builder 3工作平臺(tái)2.4 運(yùn)行應(yīng)用程序2.5 創(chuàng)建第二個(gè)應(yīng)用程序頁(yè)面,然后進(jìn)入設(shè)計(jì)模式2.6 準(zhǔn)備下一課2.7 學(xué)習(xí)收獲第3課 布置界面3.1 學(xué)習(xí)容器相關(guān)知識(shí)3.2 用設(shè)計(jì)模式布置電子商務(wù)應(yīng)用程序3.3 使用基于約束條件的布局3.3.1 使用相對(duì)父容器的約束條件3.3.2 使用增強(qiáng)型約束條件3.4 使用視圖狀態(tài)3.5 在源碼模式中布置應(yīng)用程序3.6 學(xué)習(xí)收獲第4課 使用簡(jiǎn)單的控件4.1 簡(jiǎn)單控件簡(jiǎn)介4.2 顯示圖片4.3 建立詳細(xì)信息視圖4.4 使用數(shù)據(jù)綁定將數(shù)據(jù)結(jié)構(gòu)鏈接到簡(jiǎn)單的控件4.5 使用Form布局容器布置簡(jiǎn)單的控件4.6 將單選按鈕和數(shù)據(jù)字段添加到Dashboard4.7 學(xué)習(xí)收獲第5課 處理事件和數(shù)據(jù)結(jié)構(gòu)5.1 理解事件處理5.1.1 理解一個(gè)簡(jiǎn)單的例子5.1.2 用ActionScript函數(shù)處理事件5.1.3 調(diào)用事件處理函數(shù)時(shí)傳遞數(shù)據(jù)5.2 當(dāng)creationComplete事件發(fā)生時(shí)建立數(shù)據(jù)結(jié)構(gòu)5.3 使用來(lái)自事件對(duì)象的數(shù)據(jù)5.4 建立一個(gè)自定義的ActionScript類5.5 建立一個(gè)方法來(lái)創(chuàng)建對(duì)象5.6 建立購(gòu)物車類5.7 學(xué)習(xí)收獲第6課 為控件使用遠(yuǎn)程XML數(shù)據(jù)6.1 從HTTPService中獲取XML數(shù)據(jù)6.1.1 創(chuàng)建HTTPService對(duì)象6.1.2 調(diào)用send()方法6.1.3 使用返回的數(shù)據(jù)6.1.4 理解安全問題6.2 通過HTTPService獲取XML數(shù)據(jù)6.3 將HTTPService數(shù)據(jù)填入ArrayCollection6.3.1 使用ArrayCollection6.3.2 使用Collection作為數(shù)據(jù)提供者6.4 將數(shù)據(jù)填入ComboBox控件并用編程方法添加選項(xiàng)6.5 在Tree控件中使用XML數(shù)據(jù)6.5.1 理解E4X運(yùn)算符6.5.2 將XML數(shù)據(jù)填入Tree控件6.6 獲取XML數(shù)據(jù)并將這些數(shù)據(jù)轉(zhuǎn)換為自定義類型的ArrayCollection6.7 對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)使用數(shù)據(jù)綁定6.8 操作購(gòu)物車數(shù)據(jù)6.8.1 將項(xiàng)目添加到購(gòu)物車6.8.2 對(duì)ArrayCollection中的項(xiàng)目進(jìn)行排序6.8.3 添加項(xiàng)目或者更新數(shù)量6.8.4 使用光標(biāo)定位ShoppingCartItem6.9 添加Remove按鈕6.10 學(xué)習(xí)收獲第7課 用MXML創(chuàng)建組件7.1 介紹MXML組件7.1.1 理解創(chuàng)建自定義組件的基礎(chǔ)知識(shí)7.1.2 一步步創(chuàng)建自定義組件7.1.3 在應(yīng)用程序架構(gòu)中使用自定義組件7.2 創(chuàng)建可更新/刪除商品的組件,并將它實(shí)例化7.3 單擊Update和Delete按鈕時(shí)彈出商品信息7.4 創(chuàng)建另一個(gè)值對(duì)象7.5 為三個(gè)應(yīng)用程序都創(chuàng)建數(shù)據(jù)管理器組件7.6 使用新的數(shù)據(jù)管理器組件7.7 實(shí)現(xiàn)添加商品的功能7.8 為Dashboard應(yīng)用程序創(chuàng)建并使用組件7.9 學(xué)習(xí)收獲第8課 使用控件和Repeater控制數(shù)據(jù)集8.1 使用數(shù)據(jù)集8.1.1 理解HorizontalList和TileList組件8.1.2 實(shí)現(xiàn)labelFuntcion8.1.3 實(shí)現(xiàn)itemRenderer8.2 使用HorizontalList和itemRenderer顯示類別信息8.3 基于選中的類別顯示商品8.3.1 使用Repeater遍歷數(shù)據(jù)集8.3.2 從重復(fù)的組件中獲取數(shù)據(jù)8.3.3 定位Repeater建立的組件8.3.4 理解TileList和Repeater的性能差異8.3.5 基于類別顯示商品8.4 編寫狀態(tài)以顯示商品信息詳情8.5 將商品放入購(gòu)物車8.6 學(xué)習(xí)收獲第9課 使用自定義事件9.1 理解松耦合架構(gòu)的優(yōu)勢(shì)9.2 分發(fā)事件9.3 為組件聲明事件9.4 明確對(duì)自定義事件類的需求9.5 建立并使用CategoryEvent9.6 創(chuàng)建并使用ProductEvent類9.6.1 使用ProductEvent從購(gòu)物車中移除商品9.6.2 使用ProductEvent向購(gòu)物車添加商品9.7 理解事件流和事件冒泡9.8 學(xué)習(xí)收獲第10課 用ActionScript 3.0創(chuàng)建自定義組件10.1 用ActionScript構(gòu)建組件10.2 創(chuàng)建類的基本結(jié)構(gòu)10.3 重寫createChildren()方法10.3.1 在ActionScript中創(chuàng)建Button10.3.2 使用addChild()方法向組件添加Button10.3.3 理解邊飾和rawChildren10.3.4 使用rawChildren上的addChild()向邊飾部分添加元素10.4 在Flex中定位和調(diào)整組件大小10.5 理解measure()方法10.6 重寫updateDisplayList()方法10.7 學(xué)習(xí)收獲第11課 使用DataGrid與項(xiàng)目呈現(xiàn)器11.1 介紹DataGrid和項(xiàng)目呈現(xiàn)器11.2 向ChartPod添加通用的DataGrid11.3 向Dashboard中添加HTTPService調(diào)用11.4 用DataGrid顯示購(gòu)物車11.4.1 為DataGridColumn添加內(nèi)聯(lián)的編輯控件11.4.2 創(chuàng)建MXML的項(xiàng)目呈現(xiàn)器以顯示商品11.4.3 創(chuàng)建內(nèi)聯(lián)的MXML項(xiàng)目呈現(xiàn)器用于顯示Remove按鈕11.4.4 使用set和get函數(shù)更新ShoppingCartItem11.5 使用AdvancedDataGrid11.5.1 為AdvancedDataGrid排序11.5.2 以專家模式進(jìn)行排序11.5.3 設(shè)置AdvancedDataGrid的樣式11.5.4 對(duì)數(shù)據(jù)進(jìn)行分組11.5.5 顯示摘要數(shù)據(jù)11.6 學(xué)習(xí)收獲第12課 使用拖放12.1 介紹拖放操作管理器12.2 在兩個(gè)DataGrid之間拖放12.3 在DataGrid和List之間拖放12.4 用不可以直接拖曳組件上實(shí)現(xiàn)拖放操作12.5 將商品拖進(jìn)購(gòu)物車12.6 學(xué)習(xí)收獲第13課 實(shí)現(xiàn)導(dǎo)航13.1 導(dǎo)航13.2 在DataEntry程序中使用TabNavigator13.3 在電子商務(wù)應(yīng)用程序中添加主頁(yè)和結(jié)賬頁(yè)面13.4 創(chuàng)建由ViewStack顯示的結(jié)賬過程的第一步13.5 使用ViewStack完成結(jié)賬過程13.6 學(xué)習(xí)收獲第14課 使用格式器和驗(yàn)證器14.1 介紹格式器和驗(yàn)證器14.2 用格式器類顯示電子商務(wù)應(yīng)用程序的貨幣信息14.3 使用驗(yàn)證器類14.4 用正則表達(dá)式來(lái)驗(yàn)證數(shù)據(jù)(第一部分)14.5 用正則表達(dá)式來(lái)驗(yàn)證數(shù)據(jù)(第二部分)14.6 構(gòu)建自定義驗(yàn)證器類14.7 學(xué)習(xí)收獲第15課 實(shí)現(xiàn)歷史管理和深度鏈接15.1 歷史管理簡(jiǎn)介15.2 實(shí)現(xiàn)Navigator容器的歷史管理15.3 構(gòu)建自定義的歷史管理器15.4 介紹深度鏈接15.4.1 實(shí)現(xiàn)Flex 3的深度鏈接15.4.2 為程序添加深度鏈接15.5 學(xué)習(xí)收獲第16課 自定義Flex應(yīng)用程序的外觀16.1 用樣式和皮膚來(lái)設(shè)計(jì)16.2 使用樣式16.2.1 用標(biāo)簽的屬性設(shè)置樣式16.2.2 理解樣式繼承16.2.3 用mx:Style標(biāo)簽設(shè)置樣式16.2.4 用Flex Builder工具來(lái)編寫CSS16.2.5 用CSS文件來(lái)設(shè)置樣式16.3 在運(yùn)行時(shí)修改CSS16.3.1 運(yùn)行時(shí)修改CSS的優(yōu)點(diǎn)16.3.2 從CSS文件創(chuàng)建SWF16.3.3 用StyleManager加載CSS的SWF16.3.4 使用加載的CSS覆蓋樣式16.4 皮膚組件16.4.1 圖形皮膚16.4.2 導(dǎo)入CS3創(chuàng)建的皮膚16.4.3 可編程的皮膚16.5 學(xué)習(xí)收獲第17課 使用Web服務(wù)17.1 服務(wù)器通信介紹17.2 使用遠(yuǎn)程服務(wù)器調(diào)用的事件模型17.3 配置應(yīng)用程序在本地運(yùn)行17.4 在Dashboard中使用Web服務(wù)17.4.1 處理Web服務(wù)的結(jié)果17.4.2 調(diào)用Web服務(wù)方法17.5 在DataEntry程序里使用Web服務(wù)17.6 使用Web Service Introspection向?qū)?7.7 在應(yīng)用程序中使用生成代碼17.8 用Flex Builder重構(gòu)17.9 完成生成代碼的集成17.10 更新和刪除商品17.11 學(xué)習(xí)收獲第18課 訪問服務(wù)器端對(duì)象18.1 向服務(wù)器上傳文件18.2 用RemoteObject來(lái)保存訂單18.2.1 更新Flex編譯器命令18.2.2 在結(jié)賬過程分發(fā)訂單確認(rèn)事件18.2.3 創(chuàng)建和調(diào)用遠(yuǎn)程對(duì)象18.2.4 把ShoppingCart傳入Checkout組件18.2.5 改變程序狀態(tài)以將其返回Welcome頁(yè)面18.3 把ActionScript對(duì)象映射到服務(wù)器對(duì)象18.4 Flex Builder數(shù)據(jù)向?qū)?8.5 學(xué)習(xí)收獲第19課 可視化數(shù)據(jù)19.1 探索Flex圖表組件19.1.1 圖表類型19.1.2 圖表軟件包19.1.3 圖表的組成部分19.2 布置最初的圖表19.3 填充圖表19.3.1 指定圖表的系列19.3.2 向折線圖和柱狀圖添加橫軸和縱軸19.4 向圖表添加圖例19.5 限制軸上顯示的標(biāo)識(shí)數(shù)量19.6 與圖表交互19.6.1 鼠標(biāo)經(jīng)過事件19.6.2 單擊事件19.6.3 選中事件19.7 添加圖表事件19.8 向圖表添加動(dòng)畫19.9 用樣式自定義圖表外觀19.10 學(xué)習(xí)收獲第20課 創(chuàng)建模塊化的程序20.1 介紹Flex 3的模塊化程序20.2 使用Flex模塊20.2.1 使用Module類20.2.2 用ModuleLoader標(biāo)簽來(lái)代替Checkout代碼20.3 理解RSL20.4 使用Flex框架RSL緩存20.4.1 理解框架緩存的目的20.4.2 使用有簽名的RSL與沒有簽名的RSL20.4.3 檢查程序的當(dāng)前大小20.4.4 配置程序使用框架RSL20.4.5 檢查框架RSL帶來(lái)的差別20.5 創(chuàng)建庫(kù)項(xiàng)目20.5.1 把類和資源加入庫(kù)20.5.2 在FlexGrocer程序中使用FlexGrocerLibrary20.6 學(xué)習(xí)收獲第21課 部署Flex應(yīng)用程序21.1 編譯應(yīng)用程序的部署版本21.2 用AIR擺脫瀏覽器21.2.1 開始AIR21.2.2 安裝AIR21.2.3 安裝第一個(gè)程序21.3 創(chuàng)建AIR應(yīng)用程序21.3.1 創(chuàng)建新的AIR項(xiàng)目21.3.2 使Dashboard程序成為AIR應(yīng)用程序21.3.3 用Application.xml文件定制程序21.3.4 導(dǎo)出AIR文件21.4 學(xué)習(xí)收獲第22課 創(chuàng)建過渡和行為22.1 介紹行為和過渡22.1.1 在組件上使用行為22.1.2 在視圖狀態(tài)上使用過渡22.2 在組件上實(shí)現(xiàn)效果22.3 為視圖狀態(tài)添加效果22.4 學(xué)習(xí)收獲第23課 Flex的打印功能23.1 介紹Flex的打印功能23.2 第一次使用Flex的打印功能23.3 在不可見容器中使用PrintDataGrid23.4 在單獨(dú)的組件中構(gòu)建打印視圖23.5 調(diào)整打印輸出的縮放比例23.6 從結(jié)賬過程打印收據(jù)23.7 學(xué)習(xí)收獲第24課 使用共享對(duì)象24.1 介紹共享對(duì)象24.1.1 創(chuàng)建共享對(duì)象24.1.2 讀取共享對(duì)象24.2 構(gòu)建SharedObject來(lái)保存購(gòu)物車數(shù)據(jù)24.3 從已有的共享對(duì)象中讀取數(shù)據(jù)24.4 學(xué)習(xí)收獲第25課 調(diào)試Flex應(yīng)用程序25.1 調(diào)試技術(shù)簡(jiǎn)介25.2 觀察客戶端與服務(wù)器端的數(shù)據(jù)交換25.3 學(xué)習(xí)更多調(diào)試器相關(guān)知識(shí)25.3.1 學(xué)習(xí)設(shè)置斷點(diǎn)的更多相關(guān)細(xì)節(jié)25.3.2 在調(diào)試器中檢查變量及其相關(guān)值25.4 使用try-catch處理錯(cuò)誤25.4.1 使用try-catch語(yǔ)法25.4.2 理解錯(cuò)誤類型25.4.3 使用多個(gè)catch塊25.4.4 使用一個(gè)catch塊的示例25.4.5 在第一個(gè)catch塊中使用基類Error的不良做法示例25.4.6 使用finally語(yǔ)句25.4.7 使用throw語(yǔ)句25.4.8 創(chuàng)建自己的錯(cuò)誤類25.5 學(xué)習(xí)收獲第26課 對(duì)Flex應(yīng)用程序進(jìn)行剖析26.1 Flash Player的內(nèi)存使用26.1.1 Flash Player的內(nèi)存分配26.1.2 按引用傳遞和按值傳遞26.1.3 Flash Player的垃圾收集26.1.4 垃圾收集26.2 對(duì)Flex應(yīng)用程序進(jìn)行內(nèi)存剖析26.2.1 審查ProfilerTest應(yīng)用程序26.2.2 剖析ProfilerTest應(yīng)用程序26.2.3 修復(fù)ImageDisplay類26.3 對(duì)Flex應(yīng)用程序進(jìn)行性能剖析26.3.1 剖析ProfilerTest應(yīng)用程序26.3.2 修復(fù)ProfilerTest類26.4 學(xué)習(xí)收獲附錄A 安裝指南

章節(jié)摘錄

  第1課 理解RIA  1.1 理解計(jì)算機(jī)程序的演化過程  最早的商業(yè)應(yīng)用程序的所有數(shù)據(jù)處理都發(fā)生在大型主機(jī)上,而客戶端的任務(wù)僅僅包括顯示來(lái)自服務(wù)器的信息以及接受用戶輸入,這主要是因?yàn)閿?shù)據(jù)處理的成本很高。要在整個(gè)企業(yè)中遍布強(qiáng)大的客戶端是無(wú)法承受的,因此只能將所有的數(shù)據(jù)處理集中起來(lái),并由“啞終端”負(fù)責(zé)用戶交互。  隨著內(nèi)存和處理的成本越來(lái)越便宜,啞終端被微機(jī)(也叫C)所取代。微機(jī)的處理能力更強(qiáng),可以單獨(dú)運(yùn)行更多的桌面應(yīng)用程序,比如文字處理程序和電子表格程序,因此,服務(wù)器不再是必需的了。應(yīng)用微機(jī)的組織所面臨的一個(gè)挑戰(zhàn)在于不容易集中數(shù)據(jù)。雖然大型主機(jī)時(shí)代集中了一切,但是到了微機(jī)時(shí)代卻要把數(shù)據(jù)分布開,結(jié)果在集中業(yè)務(wù)規(guī)則和同步企業(yè)內(nèi)部數(shù)據(jù)時(shí)碰上了許多難題?! 榱私鉀Q這些問題,多家廠商發(fā)布了力求結(jié)合微機(jī)與大型主機(jī)二者優(yōu)勢(shì)的平臺(tái),從而導(dǎo)致C/S(Client/Server,客戶機(jī)朋艮務(wù)器)架構(gòu)的誕生。這些平臺(tái)把微機(jī)的功能和易用性提供給終端用戶,同時(shí)允許從一個(gè)集中地點(diǎn)存儲(chǔ)和訪問商業(yè)邏輯和數(shù)據(jù),為用戶解決了當(dāng)時(shí)的那些問題。但C/S體系引發(fā)了一個(gè)新問題——軟件分發(fā)。如果客戶端應(yīng)用程序發(fā)生變化,IT部門就不得不手動(dòng)對(duì)每一臺(tái)單機(jī)上的軟件進(jìn)行重裝或升級(jí)。許多公司發(fā)現(xiàn),他們需要用一個(gè)全職的IT人員來(lái)負(fù)責(zé)保持終端用戶桌面電腦上的軟件是當(dāng)前最新的?! ‰S著20世紀(jì)90年代因特網(wǎng)的爆炸式發(fā)展,出現(xiàn)了一種商業(yè)應(yīng)用程序的新模式。這種模式依賴一個(gè)作為瘦客戶端的Web瀏覽器,其主要職責(zé)是呈現(xiàn)HTML(Hypertext Markup Language,超文本標(biāo)記語(yǔ)言)并把請(qǐng)求發(fā)回到應(yīng)用服務(wù)器,而應(yīng)用服務(wù)器動(dòng)態(tài)地生成頁(yè)面并傳給客戶端。這往往被稱為“基于頁(yè)面的架構(gòu)”①,該模式成功地解決了C/S時(shí)期面臨的軟件分發(fā)問題。每次終端用戶需要應(yīng)用程序時(shí)都會(huì)從服務(wù)器下載,所以只需升級(jí)單個(gè)中心服務(wù)器,就能自動(dòng)分發(fā)給整個(gè)用戶基。這一模式已經(jīng)成功并將繼續(xù)用于許多應(yīng)用程序,但同時(shí)也帶來(lái)了一些顯著的缺點(diǎn)和局限性。實(shí)際上,因特網(wǎng)應(yīng)用程序與大型機(jī)應(yīng)用程序有很多相似之處,比如,所有處理都集中在服務(wù)器,而客戶端只是呈現(xiàn)數(shù)據(jù)和捕獲用戶反饋。該模式最大的問題與UI(UserInterface,用戶界面)有關(guān)。過去10年內(nèi)終端用戶逐漸接受的很多便捷元素都丟失了,而ul也受到HTML能力的限制。比如,桌面軟件以及C/S應(yīng)用程序會(huì)常常使用拖放功能。然而,HTML應(yīng)用程序幾乎從不使用該功能,這是因?yàn)樵摴δ芴珡?fù)雜,而且缺乏支持跨瀏覽器flODHTML(Dynamic HTML,動(dòng)態(tài)HTML)元素,而DHTML元素卻是在純HTML/DHTML方案中實(shí)現(xiàn)拖放功能所必需的。  在大多數(shù)情況下,能建成并交付使用的解決方案的總復(fù)雜度是大大降低了。雖然Web使部署應(yīng)用程序更便捷,但基于Web的商業(yè)應(yīng)用程序的功能卻大幅度地后退了,這是因?yàn)榛跒g覽器的應(yīng)用程序必須適應(yīng)HTML以及HTTP(Hypertext Transport Protocol,超文本傳輸協(xié)議)等Web架構(gòu)的局限性?! 〗裉欤瑢?duì)基于因特網(wǎng)應(yīng)用程序的需求持續(xù)增長(zhǎng),與20世紀(jì)90年代中期的需求又有很大不同。終端用戶和企業(yè)進(jìn)行因特網(wǎng)技術(shù)投資時(shí)會(huì)提出越來(lái)越高的要求。為了給用戶提供真正的價(jià)值,許多公司正在為因特網(wǎng)應(yīng)用程序?qū)ふ腋柏S富”的模式,既擁有傳統(tǒng)桌面程序的豐富媒體,又擁有Web應(yīng)用程序天生的豐富內(nèi)容。  隨著因特網(wǎng)應(yīng)用程序開始被用于核心業(yè)務(wù)功能,應(yīng)用程序的可維護(hù)性變得更加關(guān)鍵。一個(gè)應(yīng)用程序的可維護(hù)性直接關(guān)系到應(yīng)用程序的架構(gòu)??上?,許多Web應(yīng)用程序在構(gòu)建時(shí)幾乎沒有考慮過應(yīng)用程序架構(gòu)的原則,因此很難維護(hù)和擴(kuò)展。今天,可以使用許多方式來(lái)將業(yè)務(wù)、數(shù)據(jù)訪問和顯示三者分隔開,因而能更容易地為應(yīng)用程序建立一個(gè)穩(wěn)固的架構(gòu)。隨著web服務(wù)等元素的引入,SOA(Service—OrientedArchitecture,面向服務(wù)的架構(gòu))的概念對(duì)基于Web的應(yīng)用程序來(lái)說(shuō)已經(jīng)逐漸彎得可行?! 榱藵M足企業(yè)的需求,RIA必須能做到以下幾點(diǎn)?! IA必須能為代碼執(zhí)行、內(nèi)容顯示和網(wǎng)絡(luò)通信提供一個(gè)高效率、高效能的運(yùn)行時(shí)環(huán)境。在1.2節(jié),將會(huì)研究基于HTML的標(biāo)準(zhǔn)應(yīng)用程序的各種限制;學(xué)習(xí)與基于頁(yè)面的傳統(tǒng)架構(gòu)的大量性能相關(guān)的問題?! IA必須能提供強(qiáng)大而又可擴(kuò)展的對(duì)象模型以方便交互。Web瀏覽器近年來(lái)的進(jìn)步,已經(jīng)有能力支持通過JavaScript和lDHTML在DOM(Document Object Model,文檔對(duì)象模型)中進(jìn)行交互,但它們?nèi)匀蝗狈缙脚_(tái)和跨瀏覽器的標(biāo)準(zhǔn)化支持。若使用上述工具建立可以運(yùn)行在各種瀏覽器和操作系統(tǒng)中的RIA,就要?jiǎng)?chuàng)建同一應(yīng)用程序的多個(gè)版本。RIA必須能使用服務(wù)器端對(duì)象,不論是通過web服務(wù)還是別的類似技術(shù)。RIA要保證能夠使顯示邏輯和用戶界面與封裝在服務(wù)器端中的應(yīng)用邏輯徹底地分離?! IA必須允許離線使用因特網(wǎng)應(yīng)用程序。一方面,筆記本電腦和其他便攜設(shè)備的人氣持續(xù)增長(zhǎng),另一方面,因特網(wǎng)應(yīng)用程序最嚴(yán)重的局限性之一,就是要求運(yùn)行應(yīng)用程序的機(jī)器必須連接到因特網(wǎng)。雖然用戶絕大多數(shù)時(shí)間都可以上網(wǎng),但對(duì)商務(wù)旅行者來(lái)說(shuō),有些時(shí)候是不可能連接到因特網(wǎng)的。一個(gè)成功的RIA應(yīng)該允許用戶不論在線或者離線都能使用它?! ?.2 超越基于頁(yè)面的架構(gòu)  對(duì)于經(jīng)驗(yàn)豐富的Web開發(fā)者來(lái)說(shuō),構(gòu)建RIA最大的挑戰(zhàn)之一是脫離基于頁(yè)面的架構(gòu)。傳統(tǒng)的Web應(yīng)用都圍繞著網(wǎng)頁(yè)這個(gè)概念。不論使用哪種服務(wù)器端技術(shù)(如果用到的話),流程總是類似下面這樣。 ?。?)用戶打開瀏覽器,向web服務(wù)器請(qǐng)求一個(gè)頁(yè)面?! 。?)wed服務(wù)器收到請(qǐng)求。 ?。?)(可選)網(wǎng)絡(luò)服務(wù)器把請(qǐng)求交給應(yīng)用服務(wù)器來(lái)動(dòng)態(tài)組裝頁(yè)面?! 。?)(可選)網(wǎng)絡(luò)服務(wù)器從文件系統(tǒng)獲取靜態(tài)頁(yè)面?! 。?)web服務(wù)器將(動(dòng)態(tài)或靜態(tài))頁(yè)面發(fā)回給瀏覽器?! 。?)瀏覽器繪制頁(yè)面以替代先前顯示的頁(yè)面?! 〖词乖谛马?yè)面的大部分內(nèi)容與先前頁(yè)面基本相同的情況下,整個(gè)新頁(yè)面依然需要被發(fā)送到瀏覽器并呈現(xiàn)。這是傳統(tǒng)Web應(yīng)用程序低效的原因之一:每次用戶交互都需要在瀏覽器中加載一個(gè)新頁(yè)面。RIA的關(guān)鍵目標(biāo)之一就是要減少每次請(qǐng)求傳送的額外數(shù)據(jù)量。相比下載整個(gè)頁(yè)面,為什么不可以只下載改變了的數(shù)據(jù),然后再更新用戶正在瀏覽的頁(yè)面呢?這正是標(biāo)準(zhǔn)桌面程序或者C/S應(yīng)用程序工作的方式?! ‰m然這個(gè)目標(biāo)似乎不難,也很容易被首次進(jìn)行RIA開發(fā)的開發(fā)者所接受,但Web開發(fā)者往往會(huì)把基于頁(yè)面的思維方式帶到RIA中,執(zhí)著于想解決RIA中已經(jīng)不需要解決的舊問題,例如如何“維持狀態(tài)”。舉例來(lái)說(shuō),用戶登錄以后,怎么知道他們是誰(shuí),允許他們用應(yīng)用程序做些什么?  維持狀態(tài)是基于Web的應(yīng)用程序引入的一個(gè)挑戰(zhàn)。HTTP被設(shè)計(jì)為一種無(wú)狀態(tài)協(xié)議,每次對(duì)服務(wù)器的請(qǐng)求都是一次原子操作,對(duì)先前的請(qǐng)求一無(wú)所知。這種無(wú)狀態(tài)的本質(zhì)讓W(xué)eb更具效率和冗余性,因?yàn)樵跒g覽器和服務(wù)器之間并不需要保持連接。每一個(gè)新頁(yè)面的請(qǐng)求持續(xù)的時(shí)間僅僅是服務(wù)器用來(lái)檢索和發(fā)送該頁(yè)面的時(shí)間,這樣能讓單臺(tái)服務(wù)器處理更多同時(shí)發(fā)來(lái)的請(qǐng)求。  Web無(wú)狀態(tài)的本質(zhì)也給應(yīng)用程序開發(fā)者帶來(lái)了一些挑戰(zhàn)。通常,應(yīng)用程序需要記住用戶相關(guān)的資料,如登錄權(quán)限、添加到購(gòu)物車的物品,等等。如果沒有能力記住一次次請(qǐng)求之中的這些數(shù)據(jù),就不可能進(jìn)行真正的應(yīng)用開發(fā)。為了幫助解決這個(gè)問題,實(shí)施了一系列的解決方案,其基本原理是在每次請(qǐng)求時(shí)將一個(gè)獨(dú)特的標(biāo)識(shí)發(fā)回給服務(wù)器(通常使用cookie。cookie是一些小文本文件,包含了應(yīng)用程序指定的每個(gè)用戶的特定標(biāo)識(shí)符),并在服務(wù)器存儲(chǔ)該用戶信息?! ∮袆e于傳統(tǒng)的Web應(yīng)用程序,RIA可以繞過許多上述問題。因?yàn)閼?yīng)用程序在被用戶使用(而不像基于頁(yè)面模式那樣只是加載和卸載)的整個(gè)時(shí)間內(nèi)一直待在客戶端的內(nèi)存中,所以只要設(shè)定一次變量,就能在整個(gè)應(yīng)用程序的生命周期中訪問該變量?! ≡S多情況下,開發(fā)RIA時(shí)與開發(fā)Web應(yīng)用程序時(shí)所需的思維方式稍有區(qū)別,處理狀態(tài)的方法不同只是其中之一。事實(shí)上,基于Web的RIA相LLWeb應(yīng)用程序反而與C/S應(yīng)用程序有更多的相似性?! ?.3 明確RIA的優(yōu)勢(shì)  與20世紀(jì)90年代中后期的網(wǎng)絡(luò)泡沫時(shí)不同,企業(yè)不會(huì)再簡(jiǎn)單地因?yàn)橐蛱鼐W(wǎng)技術(shù)很酷就投資。要取得成功,一項(xiàng)新技術(shù)必須體現(xiàn)出真正的投資回報(bào)率和真正的價(jià)值增長(zhǎng)。RIA可在以下幾個(gè)層次上實(shí)現(xiàn)以上目標(biāo),其中都降低了開發(fā)成本并增加了整個(gè)組織的價(jià)值。

媒體關(guān)注與評(píng)論

  Adobe技術(shù)社區(qū)最有影響力的專家之一,擁有豐富的Web開發(fā)經(jīng)驗(yàn),客戶包括摩根士丹利、IBM、道瓊斯等公司。他還是Web Developers&Designe.Jourma雜志的編委?!  狫eff Tapper  Adobe技術(shù)社區(qū)最著名的專家之一,是Adobe開發(fā)人員中心的重要撰稿人,也是Adobe技術(shù)郵件列表中最受歡迎的“大俠”。除本書外,他還與Jeff Tapper合著了《AlR權(quán)威指南》一書(人民郵電出版社即將出版)?!  狹ichael Labriola  Adobe公司客戶培訓(xùn)團(tuán)隊(duì)的技術(shù)主管,他還參與設(shè)計(jì)了Adobe開發(fā)領(lǐng)域的官方課程。James Talbot Adobe公司資深工程師,有豐富的Flex開發(fā)和培訓(xùn)經(jīng)驗(yàn),幫助全世界許多用戶使用Adobe技術(shù)創(chuàng)建了各種重要應(yīng)用。他也是Object Oriented Action Scnript 2.0一書的作者。  ——Matthew BoIes

編輯推薦

  《Flex 3權(quán)威指南》適合各層次Flash和Flex開發(fā)人員閱讀。  AdobeFlex作為一種跨操作系統(tǒng)和瀏覽器的開源框架,已經(jīng)成為目前開發(fā)RIA最炙手可熱的技術(shù)!《Flex 3權(quán)威指南》是Adobe公司官方培訓(xùn)教材,通過一個(gè)完整的貼近實(shí)戰(zhàn)的網(wǎng)上雜貨店應(yīng)用,用課程的形式,使讀者身臨其境地在40個(gè)小時(shí)內(nèi)輕松掌握Flex開發(fā)涉及的各種技術(shù)和技巧。學(xué)會(huì)構(gòu)建用戶體驗(yàn)絕佳的專業(yè)級(jí)應(yīng)用程序。書中詳細(xì)介紹了FlexBIJilder、AIR、MXML和ActiollScript的概念,用戶與后臺(tái)數(shù)據(jù)交互的各種方式以及這些方式之間的區(qū)別,同時(shí)還討論了如何使用Flex組件,如何編寫你自己的Flex組件,以及如何編寫高性能的代碼等內(nèi)容。全面涵蓋了Flex3的各種新特性。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    Flex 3權(quán)威指南 PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7