一、訓(xùn)練目標(biāo):
1.全面了解基于Sivlight開(kāi)發(fā)數(shù)據(jù)中心型RIA應(yīng)用的典型實(shí)例?
2.充分認(rèn)識(shí)基于Silvlight技術(shù)開(kāi)發(fā)的RIA應(yīng)用程序的優(yōu)缺點(diǎn)
3.充分認(rèn)識(shí)開(kāi)發(fā)Sivlight應(yīng)用程序與開(kāi)發(fā)普通ASP.NET應(yīng)用程序的區(qū)別?
4.熟練掌握基于ADO.NET數(shù)據(jù)服務(wù)(WCF數(shù)據(jù)服務(wù))和Sivlight進(jìn)行交互.
5.了解LINQ TO XML\LINQ TO ENTITY技術(shù)處理數(shù)據(jù)?
6.會(huì)使用Silvlight的客戶端獨(dú)立數(shù)據(jù)存儲(chǔ)技術(shù)來(lái)優(yōu)化應(yīng)用?
7.了解基于WebClient實(shí)現(xiàn)文件的上傳與下載?
8.掌握XAML界面動(dòng)態(tài)切換技術(shù)
9.熟練使用XAML來(lái)布局界面?
10.熟練使用XAML控件?
11.熟練掌握Silverlight與服務(wù)端的異步交互
二、項(xiàng)目使用工具介紹:
VS2010(.NET4.0)+Silvlieght4+Expression Blend4+SQL Server2008+WinXP
三、Silverlight的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):?
(1) Silverlight是基于WPF的動(dòng)畫模型,這是一種基于時(shí)間的(而不是基于幀)的動(dòng)畫技術(shù),所以實(shí)現(xiàn)起來(lái)更方便同時(shí)動(dòng)畫更流暢。
(2)開(kāi)發(fā)者可以選擇多種編程語(yǔ)言來(lái)與Silverlight進(jìn)行交互,如(C#\VB.NET,甚至于是javascript)
(3)在Silverlight應(yīng)用程序中,用戶接口使用的是XAML語(yǔ)言
(4)Siverlight支持Socket編程 ,網(wǎng)絡(luò)編程功能強(qiáng)大
(5)Siverlight的流媒體技術(shù)與視頻編碼技術(shù)較flash有很大的加強(qiáng)
缺點(diǎn)
(1)因?yàn)镾liverlight的腳本語(yǔ)言是XAML語(yǔ)言,而這種文件是非壓縮的,因此,導(dǎo)致一個(gè)Silverlight組件比較大
(2)Siverlight支持的操作系統(tǒng)比較少,如不支持Linux和SOlaris平臺(tái)
(3)Siverlight僅僅支持PNG或JPEG格式的圖片,對(duì)于其他類型的圖片支持不是很好
系統(tǒng)功能分析
四大模塊
?
1.圖像種類管理
1.1.查看所有圖像種類
1.2.查詢圖像種類?
1.3.編程圖像種類
1.4.添加圖像種類
1.5.刪除圖像種類
2.圖像上傳模塊
2.1.選擇上傳圖像
2.2.顯示上傳圖像屬性?
2.3.預(yù)覽上傳圖片
2.4.上傳圖片
3.圖像下載模塊
3.1.選擇下載圖片種類
3.2.顯示下載圖片列表
3.3.下載并預(yù)覽圖片
4.圖片瀏覽模塊
4.1.選擇瀏覽圖片的種類
4.2.下載圖片數(shù)據(jù)
4.3.以不同方式瀏覽圖片
系統(tǒng)架構(gòu)
是一個(gè)典型的三層架構(gòu)
1.表示層(XAML)?
2.業(yè)務(wù)邏輯層
3.數(shù)據(jù)訪問(wèn)層 (WCF數(shù)據(jù)服務(wù))
4.SQL Server2008數(shù)據(jù)庫(kù)
代碼講解
1.ADO.NET(WCF)數(shù)據(jù)服務(wù)技術(shù) ADO.NET實(shí)體框架特性
1.實(shí)體數(shù)據(jù)模型,允許開(kāi)發(fā)人員在高抽象層對(duì)數(shù)據(jù)進(jìn)行建模
2.強(qiáng)大的映射引擎,允許方便的建立數(shù)據(jù)模型與數(shù)據(jù)存儲(chǔ)定義之間的映射
3.支持使用實(shí)體SQL句法和LINQ操作數(shù)據(jù)
4.對(duì)象服務(wù)層,允許選擇是否將查詢結(jié)果以行/列記錄還是.NET對(duì)象的形式對(duì)外提供
5.這一切都可以通過(guò)VS2010開(kāi)發(fā)工具以向?qū)У姆绞阶詣?dòng)完成。減少開(kāi)發(fā)者大量的數(shù)據(jù)訪問(wèn)層的開(kāi)發(fā)時(shí)間.
2.使用ADO.NET(WCF)數(shù)據(jù)服務(wù)實(shí)現(xiàn)圖像數(shù)據(jù)的訪問(wèn)
第一步:創(chuàng)建實(shí)體數(shù)據(jù)模型(edmx)?
第二步:創(chuàng)建ADO.NET(WCF)數(shù)據(jù)服務(wù)
第三步:在我們的Silverlight應(yīng)用程序中添加對(duì)此數(shù)據(jù)服務(wù)的引用?
第四步:產(chǎn)生一個(gè)代理類,通過(guò)此代理類調(diào)用WCF數(shù)據(jù)服務(wù)完成對(duì)數(shù)據(jù)的CRUD操作
3.App.xaml VSM Visual State Manager,中文又稱視覺(jué)狀態(tài)管理器(簡(jiǎn)稱為VSM) 開(kāi)發(fā)人員和設(shè)計(jì)人員可以輕松的改變項(xiàng)目控件的視覺(jué)效果, 在項(xiàng)目中VSM主要用于創(chuàng)建自定義控件以及控件模板
4.主界面(MainPage.xaml)
5.全屏/窗口效果切換實(shí)現(xiàn)
Application.Current.Host.Content.IsFullScreen = true
6.首頁(yè)面歡迎窗體的功能實(shí)現(xiàn)
7.圖像分類管理窗體的功能設(shè)計(jì)與實(shí)現(xiàn)
異步調(diào)用WCF數(shù)據(jù)服務(wù)的步驟(查詢):
step0:首先獲取WCF數(shù)據(jù)服務(wù)客戶端代理類的實(shí)現(xiàn)?
step1:構(gòu)造數(shù)據(jù)查詢的Linq 語(yǔ)句
step2:對(duì)WCF數(shù)據(jù)服務(wù)配置一個(gè)查詢請(qǐng)求
step3:調(diào)用BeginExecute()方法開(kāi)啟一個(gè)異步的查詢請(qǐng)求,注意 這里需要配置一個(gè)跟蹤異步查詢結(jié)果的一個(gè)回調(diào).?
step4:當(dāng)服務(wù)器返回?cái)?shù)據(jù)時(shí)會(huì)執(zhí)行查詢時(shí)配置的回調(diào)方法
step5:在該回調(diào)方法中
1.結(jié)束異步操作,并獲取服務(wù)器返回的結(jié)果集
2.解析結(jié)果集
3.更新UI層界面的內(nèi)容的顯示
異步調(diào)用WCF數(shù)據(jù)服務(wù)的步驟(修改)
step0:首先獲取WCF數(shù)據(jù)服務(wù)客戶端代理類的實(shí)現(xiàn)?
step1:獲取要修改的數(shù)據(jù)實(shí)體
step2:用該數(shù)據(jù)更新本地?cái)?shù)據(jù)
step3:將更新之后的本地?cái)?shù)據(jù)真正異步提交到后臺(tái)的WCF,注意,這里需要配置 一個(gè)跟蹤異數(shù)修改操作的回調(diào)函數(shù)
step4:在該回調(diào)方法中,獲取回調(diào)的結(jié)果,做后繼的客戶端的邏輯的處理
注意:這里尤其要注意WCF數(shù)據(jù)服務(wù)的權(quán)限設(shè)置問(wèn)題。 config.SetEntitySetAccessRule("*", EntitySetRights.All); config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
8.圖像的上傳與下載功能模塊實(shí)現(xiàn)
圖像的上傳模塊功能實(shí)現(xiàn)
界面層(UploadDownload.xaml)
代碼講解
圖像的下載功能的實(shí)現(xiàn)
界面層(UploadDownload.xaml)
9.圖像分類瀏覽
圖像分類瀏覽界面的實(shí)現(xiàn) PhotoViewer.xaml
代碼實(shí)現(xiàn)
10.圖像查詢
圖像查詢界面的實(shí)現(xiàn)
PhotoSearch.xaml
代碼實(shí)現(xiàn)