出版時間:2009-1-1 出版社:清華大學出版社 作者:楊占坡,楊銘,翁穎 頁數:421
Tag標簽:無
前言
1. RIA開發(fā)奇兵——Flex曾經滄海難為水,除卻巫山不是云。然而,當我們已經經歷了眾多編程語言、開發(fā)技術的洗禮之后,仍然被Flex的風采所打動。Flex是一種結合了廣闊的市場前景和充滿智慧的方法學的新一代復合型軟件技術。我們一行三人決定結合自己的項目經驗和開發(fā)技能為各位讀者獻上這本《Flex 3 RIA開發(fā)詳解與精深實踐》。(1)升級的RIA開發(fā)路線“君子性非異也,善假于物也”。Adobe公司似乎深悟了這個道理,汲取了XML結構清晰、格式通用的特點,創(chuàng)造了Flex美麗的外衣——MXML;然后又通過已經擁有一定用戶基礎的ActionScript腳本語言作為Flex聰慧的大腦;并在運行環(huán)境上為Flex技術做了擴展和優(yōu)化。因此,亦可以說Flex是一項毫無新技術的新技術。然而,正是這樣一種毫無新技術的新技術借助于自己得天獨厚的運行時環(huán)境Flash Player一躍成為RIA(Rich Internet Application)開發(fā)的大熱門??茖W技術的發(fā)展帶動了信息產業(yè)的發(fā)展,軟件開發(fā)逐漸從高不可測的神壇上走了下來,變得更加大眾化。因此,當前的軟件開發(fā)形式不得不更多地借助于現有的市場基礎。Macromedia公司(已被Adobe收購)就把握住了這個關鍵點大做文章,于是Flex技術沖進了廣大軟件開發(fā)者的視線。(2)無縫結合高層軟件實現企業(yè)級RIA開發(fā)提到高層軟件開發(fā),就不得不說說Java和.NET這兩種占企業(yè)級開發(fā)主導地位的技術旗艦。然而這兩種軟件技術進行企業(yè)級開發(fā)的不足之處就是界面處理,無論從效果還是交互方面都是依賴于傳統的“網頁”模式,Flex技術正是在這方面彌補了它們的不足。作為一項專注于界面效果和交互的RIA技術,Flex并沒有忽視企業(yè)級開發(fā)的重要性。Life Cycle組件可以使Flex技術直接與Java企業(yè)級服務進行通訊,并可以方便地通過ActionScript對象與Java對象進行映射。這也是Flex技術非常“聰明”的一個方面,如果Flex技術自己包含一個碩大的企業(yè)級開發(fā)架構的話,就會帶來諸多麻煩。
內容概要
Flex是目前最為普及的一種RIA開發(fā)技術,依托于脫胎換骨的ActionScript 3.0,可以輕松實現相比傳統的網絡應用更加卓越的交互能力和更加絢麗的表現效果。Flex技術本身并不是憑空出現的,經過了Flash的長期預熱,依托于XML、ActionScript 3.0等標準化開發(fā)語言,終成正果?! ”緯詫嵺`為手段,以實用為核心,全面解析了應用Flex技術進行RIA開發(fā)的思維與過程。從實踐開始、到實踐結束。從最簡單的Hello World演示到完整的項目全案開發(fā),給讀者全新的學習過程?! 热莘譃樗牟糠郑洪_啟Flex之門、Flex開發(fā)進階、Flex 3 Web項目全案開發(fā)、Flex 3 AIR桌面項目全案開發(fā)。涉及了Flex基礎概念、組件設計開發(fā)、圖表開發(fā)、企業(yè)級應用以及AIR桌面應用等方面。 本書最大的特點是使用大量小巧的示例幫助讀者快速體驗Flex開發(fā)流程。并在最后兩大部分中結合完整的項目開發(fā)案例,給讀者以積少成多、從量變到質變的軟件開發(fā)學習過程之體驗?! ”緯髡呤菄鴥鹊谝粋€企業(yè)級Flex上線項目的負責人,資深軟件工程師,并多年從事Flash/Flex RIA開發(fā),具有貨真價實的Flex功力。 光盤提供作者精心整理的代碼、項目文件,并包含國內首次提供的Flex項目開發(fā)操作視頻?! ∽x者對象:Web開發(fā)人員、軟件工程師、Flash設計師、網頁設計師、軟件專業(yè)相關師生等。
作者簡介
楊占坡,資深軟件工程師、軟件架構師、北京航空航天大學軟件工程碩士,精于企業(yè)級軟件開發(fā)和嵌入式系統開發(fā)。對C語言、Java語言/JavaEE系統、Ruby on Rails、Flex、Ajax等領域都有深入的研究:國內第一個Flex企業(yè)級上線項目核心開發(fā)者,屬于國內最早一批應用Flex進行企業(yè)級開發(fā)的軟件工程師;國內第一批Ruly on Rails架構的倡導者;擁有企業(yè)級分布式架構設計的國家級發(fā)明專利。在軟件設計方法、軟件開發(fā)技術方面都具有深刻認識和獨到見解。
書籍目錄
PART 1 開啟Flex之門 第1章 Flex 3程序設計基礎 1.1 RIA概述 1.2 Flex簡介 1.3 MXML 1.4 ActionScript 1.4.1 在MXML中使用ActionScript腳本 1.4.2 使用ActionScript類 1.5 Flex的事件機制 1.5.1 Flex事件處理 1.5.2 Flex事件監(jiān)聽器注冊 1.6 使用Adobe Flex Builder 1.6.1 Flex Builder系統需求 1.6.2 使用Flex Builder進行開發(fā) 1.6.3 Flex Builder開發(fā)特點 1.7 在Flex中操作XML 1.7.1 XML在Flex中的應用 1.7.2 通過E4X處理XML 第2章 Flex可視化組件開發(fā) 2.1 Flex可視化組件簡介 2.2 可視化組件基礎 2.2.1 Flex組件體系基礎 2.2.2 構建RIA—— Flex應用程序開發(fā)步驟 2.2.3 數據集成與綁定,可視化組件的數據操作 2.2.4 CSS,可視化組件的樣式處理 2.2.5 容器組件,可視化組件的結合形式 2.3 IO控制組件 2.3.1 使用IO控制組件 2.3.2 Button類組件 2.3.3 Bar類組件 2.3.4 數據處理類組件 2.3.5 多媒體處理類組件 2.3.6 快捷交互類組件 2.3.7 輔助類組件 2.4 文本組件 2.4.1 文本組件的基本應用 2.4.2 Label和Text組件 2.4.3 TextInput和TextArea組件 2.4.4 RichTextEditor組件 2.5 菜單組件 2.5.1 菜單組件基礎 2.5.2 處理菜單條目 2.5.3 菜單組件應用示例 2.5.4 Menu組件的使用 2.5.5 MenuBar組件的使用 2.5.6 PopUpMenuButton組件的使用 2.6 數據容器類組件 2.6.1 Flex數據容器組件與數據驅動 2.6.2 使用 List組件 2.6.3 使用HorizontalList組件 2.6.4 使用TileList組件 2.6.5 使用ComboBox組件 2.6.6 使用DataGrid組件 2.6.7 使用Tree組件 2.7 布局控制與布局組件 2.7.1 Flex布局控制 2.7.2 使用Canvas組件 2.7.3 使用Box類布局組件 2.7.4 使用DividedBox類布局組件 2.7.5 使用ControlBar組件 2.7.6 使用ApplicationControlBar組件 2.7.7 使用表單組件 2.7.8 使用網格布局組件 2.7.9 使用Panel組件 2.7.10 使用Tile組件 2.7.11 使用TitleWindow組件 2.8 導航控制組件 2.8.1 使用ViewStack組件 2.8.2 使用TabNavigator組件 2.8.3 使用Accordion組件PART 2 Flex開發(fā)進階 第3章 Flex程序設計進階 3.1 可視化組件行為控制 3.1.1 Flex行為控制概述 3.1.2 在MXML中使用行為控制 3.1.3 在ActionScript中使用行為控制 3.1.4 可視化組件效果控制 3.2 視圖模式與視圖轉換 3.2.1 視圖模式 3.2.2 創(chuàng)建和應用視圖模式 3.2.3 視圖模式與歷史記錄管理器 3.2.4 視圖轉換——Transitions 3.2.5 詳解Transition的使用 3.2.6 效果過濾器 第4章 Flex模塊化編程 4.1 Flex模塊化編程概述 4.1.1 模塊化軟件開發(fā) 4.1.2 Flex模塊架構 4.2 Flex模塊的創(chuàng)建與使用 4.2.1 使用MXML創(chuàng)建模塊 4.2.2 使用ActionScript創(chuàng)建模塊 4.3 數據傳輸 4.3.1 應用程序與模塊之間的數據傳輸 4.3.2 模塊之間的數據傳輸 第5章 ActionScript 3精要 5.1 ActionScript 3概述 5.1.1 繼往開來的ActionScript 5.1.2 與時俱進的ActionScript 3新特性 5.2 ActionScript 3編程基礎 5.2.1 ActionScript 3編程概述 5.2.2 類與對象 5.2.3 包與命名空間 5.3 ActionScript 3的面向對象編程 5.3.1 面向對象的編程基礎知識 5.3.2 繼承和多態(tài) 5.3.3 訪問控制與封裝 5.3.4 屬性的覆蓋 第6章 Flex圖表 6.1 Flex圖表簡介 6.2 Flex圖表組件基礎 6.2.1 Flex圖表輔助類型 6.2.2 定義Flex圖表數據 6.3 使用Flex圖表組件 6.3.1 范圍圖(Area Chart) 6.3.2 線形圖(Line Chart) 6.3.3 條形圖(Bar Chart) 6.3.4 柱狀圖(Column Chart) 6.3.5 氣泡圖(Bubble Chart) 6.3.6 散點圖(Plot Chart) 6.3.7 燭臺圖(Candlestick Chart) 6.3.8 HLOC圖(HighLowOpenClose Chart) 6.3.9 餅圖(Pie Chart) 6.3.10 使用多重數據集 6.3.11 使用多重坐標軸 6.4 Flex圖表定制化 6.4.1 在圖表中使用CSS樣式 6.4.2 使用Filter 6.4.3 Legend組件 6.5 Flex圖表事件處理 6.5.1 圖表組件的事件處理 6.5.2 圖表數據條目的事件處理PART 3 Flex 3 Web項目全案開發(fā) 第7章 Flex企業(yè)級開發(fā)實踐—— Flex + Struts 7.1 Flex與Struts 7.1.1 Flex與Java,自然又必然 7.1.2 Struts,外表-思想-內心 7.1.3 Flex為Struts披上了絢麗的外衣 7.2 Flex與數據服務 7.2.1 LiveCycle很好很強大 7.2.2 RPC,Flex也能“分布式” 7.2.3 消息,讓Flex走向“企業(yè)級” 7.2.4 數據管理服務,Flex不是花瓶! 第8章 Flex企業(yè)級開發(fā)實踐—— Flex + Web Services 8.1 Web Services,分布式無國界 8.2 SOAP引擎Axis 2 8.3 Flex + Web Services,開始起航PART 4 Flex 3 AIR桌面項目全案開發(fā) 第9章 桌面上的Web開發(fā)——AIR 9.1 AIR概述 9.2 AIR程序初步體驗 9.2.1 安裝運行時環(huán)境 9.2.2 安裝和運行Twhirl 9.2.3 獲得其他AIR示例程序 9.3 開發(fā)環(huán)境的設置 9.4 AIR的安全性問題 9.4.1 安全沙箱(Sandboxes) 9.4.2 JavaScript和HTML的限制 9.4.3 引入外部資源的不安全因素 9.4.4 對于HTML的安全性約束 9.5 用Flex Builder 3構建第一個AIR應用 9.5.1 創(chuàng)建AIR工程 9.5.2 編寫代碼 9.5.3 打包應用程序 9.6 用Flex SDK構建第一個AIR應用 9.6.1 設置開發(fā)環(huán)境 9.6.2 創(chuàng)建應用程序的描述文件 9.6.3 編寫應用程序代碼 9.6.4 編譯和運行應用程序 9.6.5 創(chuàng)建AIR應用程序安裝包 9.7 創(chuàng)建AIR庫工程 9.8 Adobe AIR的新增功能 第10章 Flex AIR開發(fā)實踐 10.1 Flex AIR組件 10.1.1 文件系統管理控件 10.1.2 HTML組件 10.1.3 FlexNativeMenu控件 10.1.4 關于窗體容器(Window Containers) 10.2 操作文件系統 10.2.1 文件的基本操作 10.2.2 文件的讀寫操作 10.3 設置AIR應用程序的屬性 10.3.1 應用程序描述文件的結構 10.3.2 應用程序描述文件中的重要屬性 10.4 讀取應用程序設置 10.4.1 讀取應用程序的描述文件 10.4.2 獲得應用程序和發(fā)布的唯一標識 10.5 AIR的本地數據庫 10.5.1 關于local SQL databases 10.5.2 與數據庫操作有關的類 10.5.3 創(chuàng)建數據庫 10.5.4 管理數據庫中的數據 10.5.5 處理多個數據庫 10.5.6 一個簡單的通訊錄程序
章節(jié)摘錄
插圖:PART 1 開啟Flex之門第1章 Flex 3程序設計基礎1.1 RIA概述Internet已經是我們生活的一部分,而“看網頁”可以說是網絡瀏覽者與Internet最簡單的溝通方式。打開瀏覽器,進入一個網站瀏覽,這就是瀏覽者們看到的最直觀的Internet的外表。盡管頁面上不是單一的文字,但也僅僅是“頁”。然而如今這些傳統的呆板的“頁”已經不再能滿足網絡瀏覽者的要求了。多媒體、多元化的信息表現在一個頁面上,的確很是單薄。另一方面,開發(fā)人員也一直在為過分依賴于頁面刷新、請求響應等諸多傳統網頁開發(fā)技術固有的問題而煩惱。當然我們不能忽略B/s架構能夠取代C/s長期大行其道有一個重要的因素,就是網絡帶寬問題。傳統網頁內容簡單,節(jié)省網絡帶寬的優(yōu)勢是與生俱來的,而如今網絡技術在不斷地發(fā)展,軟硬件發(fā)展又達到了一個并駕齊驅的時期,軟件系統已經不需要等待硬件的發(fā)展而發(fā)展。有了強烈的需求,又有了充足的硬件基礎,新技術應運而生,Rich InternetApplication(RIA)的出現給網絡瀏覽者和開發(fā)人員都帶來了全新的體驗。Rich Internet.Application即是富因特網應用程序,其特點也體現在一個“富”字上,傳統的HTML頁面帶給用戶的頁面元素是極其有限的,輸入框、選擇框、下拉框等無法替換的元素,恐怕早就對瀏覽者帶來了審美疲勞,更何況在功能上也存在著很大不足。對比傳統頁面,RIA的界面是“富”的,基本上一個桌面程序能表現出來的效果,RIA都能表現。圖1.1中的網站是一個名為scrapblog的博客網站,與我們常見到的博客網站不同,這個網站使用一種RIA技術構建,在頁面表現力和交互性上都遠遠超過了常見的博客網頁。如果說RIA的優(yōu)勢僅僅是豐富的界面表現能力的話,那么大家會認為這不過就是個C/S架構,RIA的另一大特點也正是與c/S架構最大的不同:數據上的“富”。傳統的網頁開發(fā)基于HTTP協議,數據的交互依賴于請求/響應機制;界面的交互則需要進行頁面的跳轉和刷新。RIA的處理則有很大不同,在客戶端可以進行完整的數據處理,與用戶的交互更加友好、更加迅速;界面交互并不依賴頁面,消息通過異步請求傳遞,面向用戶界面中的各個小模塊,客戶端的模塊之問關系清晰,處理起來更加靈活。對于企業(yè)級應用來說,RIA技術并不需要替換掉現有的體系結構模型,如IavaEE(一以前稱12EEl、.NET架構等。RIA技術通常可以和企業(yè)級應用體系結構很好地進行整合。將原有的系統構建成更易用、更直觀、更迅速的“網頁應用程序”。在不會影響到原有應用的前提下,RIA技術對表現層進行了大幅度的增強,進一步提升界面的友好程度,并且減少了用戶與系統的遠程交互頻率,減少了帶寬需求。RIA開發(fā)技術已經有很多種,Adobe公司的Flex發(fā)展目趨成熟,微軟公司的Silver[,ight及Sun公司的IavaFX也嶄露頭角。Flex技術的優(yōu)勢得天獨厚,有強大的Flash平臺作后盾,SilverIAght和IavaFX在RIA的實現上則各有側重,Silver[,ight作為一個瀏覽器插件支持廣泛,而且對于IavaScript和微軟的.NET技術無縫結合,而IavaFX體系不僅希望利用編寫更容易的lavaFX Script取代lavaScript,更是提供了JavaFX Mobile,為手機及移動設備增加了應用程序支持。1.2 Flex簡介Flex是一種基于標準編程模型的高效RIA開發(fā)產品集,最初由Macromedia公司在2004年發(fā)布,后被Adobe公司冠以商標。Flex最大的特點是基于全球流行的網絡動畫平臺——Macromedia Flash。2000年以來,Flash動畫愈發(fā)火爆,“閃客”們的作品為Internet增添了絢麗的色彩,而Flash的播放器Flash Player。已經成為瀏覽器上首選的不可或缺的插件,為了看到頁面中生動的Flash動畫,大部分瀏覽者都會安裝Flash Player。通過Flex技術,開發(fā)人員可以將RIA程序編譯成為Flash文件,為Flash Player所接受,也就是說,Flex技術所開發(fā)出來的程序對于大部分瀏覽者而言并不需要安裝額外的客戶端支持,這是一個得天獨厚的優(yōu)勢。“基于標準編程模型的高效RIA開發(fā)產品集”,這是Adobe公司對Flex技術的官方定義。下面我們就來進行詳細的分析。一個完整的Flex程序由MXML代碼和ActionScript代碼組成。MXML基于XML標準,用于配置和設計Flex程序的界面及編寫表現層數據模型;ActionScript基于ECMAScript,原來用于設計Flash動畫,其語法規(guī)范類似于IavaScript,,這樣兩種基于W3C標準的開發(fā)語言就構成了Flex程序,兩種語言的關系類似于HTML和JavaScript,這樣一來(尤其對于傳統網頁開發(fā)者來說1,Flex根本沒有什么門檻。Flex 3是Flex的一個成熟版本,它的產品集包含以下幾部分?!?.4 ActionScriptActoonScript是為Adobe Flash設計的面向對象的程序設計語言,在Flex開發(fā)中,ActionScript的基本作用類似于傳統網頁開發(fā)中的JavaScript,同時ActionScript還要負責Flex程序的邏輯控制和業(yè)務建模。ActionScript遵循歐洲計算機制造商協會(EcMA)通過的ECMAScript標準,而ECMAScript出自JavaScript派生出的標準ECMA.262,因此無論是使用語法還是技巧方面,ActionScript與JavaScript都非常相似。作為Flex技術的組成部分,ActionScript充當著更加重要的角色。如果說MXML是F1ex亮麗的外表,那么ActionScipt就賦予了Flex聰慧的靈魂。對于開發(fā)者而言,在ActionScriDt上所下的功夫要大于MXML,MXML作為界面表現層需要更多的是外觀設計,而ActionScriDt則需要擔當起用戶交互、數據處理和業(yè)務邏輯處理的重任。不僅如此,在MXML中所使用的Panel、Label等Flex內建組件都是基于ActionScript類實現的,應用ActionScript可以繼承這些內建的組件對象來創(chuàng)建自定義的Flex組件,使得開發(fā)的靈活性大大增加。ActionScript的應用還可以涉及到表現層數據模型以及異步遠程請求及響應的事務處理。我們可以通過標簽在MXML文件中插入ActionScript代碼或導入ActionScript類文件。而在編譯過程中,ActionScript代碼和MXML代碼都會被分離成ActionScript類,最終編譯器連接所有的ActionScript類,編譯生成SWF文件。
媒體關注與評論
Flex在當今富因特網應用中充當著旗艦級的角色,而這本書由淺入深解析了Flex技術,無論對于新手還是擁有Web開發(fā)經驗的軟件工程師都非常有實用價值。尤其是其中的項目實踐部分,可以作為開發(fā)范本來使用。Flex開發(fā)體系是非常有特點的,這是國內我目前可以找到的唯一一本從思維上精密解析Flex RIA開發(fā)流程的資料。 ——中國數碼Web研發(fā)主管 孫雷 楊占坡是我多年的朋友,對技術極具天賦和熱情。他的開發(fā)經驗從Web應用到IDE開發(fā),從嵌入式系統到Web RIA應用。這本書不是通常的技術手冊,而是具有貨真價實的可操作性!在當前Flex已經越來越多地被國際大公司應用于大型系統中的形勢下,相信占坡領銜的這本書會給真正想將Flex用于實際項目的朋友提供非常好的參考。 ——IBM(中國)資深系統架構師 張琦 楊占坡我認識的時間不長,但是印象非常深刻。他是位出色的工程師和架構師,敢于創(chuàng)新,敢于挑戰(zhàn)權威,敢于打硬仗,而且每次出手都能證明自己的價值。我作為Silverlight體系的參與開發(fā)者和擁護者,與他的交流中得到了很多東西,毋庸置疑,Flex仍然是微軟在RIA領域最強勁的競爭對手,我們希望對手更強大,以推動技術發(fā)展! ——微軟(愛爾蘭)高級軟件架構師 曹剛 Flex為企業(yè)應用以及互聯網多媒體應用提供一個現時最為成熟,功能齊備的解決方案,強大的數據整合能力能夠高效經濟地利用企業(yè)已有的業(yè)務系統,結合網絡Web資源,創(chuàng)建出豐富多彩的各式應用。Flex技術的應用在國內正逐漸受到關注和重視,但是在目前已有的圖書資料中,基本上都是在說明一些概念性內容和IDE的使用,并沒有真正深入Flex核心應用,而本書具有卓爾不群的實用價值,字里行間充斥著一目了然的開發(fā)經驗,相信這本書可以成為你精通Flex的踏腳石。 ——cnflex.org站長 勞偉峰
編輯推薦
《Flex 3 RIA開發(fā)詳解與精深實踐:企業(yè)級Web應用與AIR桌面應用》作者是國內第一個企業(yè)級Flex上線項目的負責人,資深軟件工程師,并多年從事Flash/Flex RlA開發(fā),具有貨真價實的Flex功力。光盤提供作者精心整理的代碼、項目文件,并包含國內首次提供的Flex項目開發(fā)操作視頻。讀者對象:Web開發(fā)人員、軟件工程師、Flash設計師、網頁設計師、軟件專業(yè)相關師生等。國內首個Flex商業(yè)項目開發(fā)者的領先感悟Web項目與桌面項目之精密操作程序員的Flex精髓——您需要一定編程基礎精心選擇最能發(fā)揮Flex實力的項目進行剖析凌厲代碼風格,絕菲一股閃客設計師的“彪悍代碼”。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Flex 3 RIA開發(fā)詳解與精深實踐 PDF格式下載