一、訓(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)畫(huà)模型,這是一種基于時(shí)間的(而不是基于幀)的動(dòng)畫(huà)技術(shù),所以實(shí)現(xiàn)起來(lái)更方便同時(shí)動(dòng)畫(huà)更流暢。
(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ì)于其他類(lèi)型的圖片支持不是很好
系統(tǒng)功能分析
四大模塊
?
1.圖像種類(lèi)管理
1.1.查看所有圖像種類(lèi)
1.2.查詢圖像種類(lèi)?
1.3.編程圖像種類(lèi)
1.4.添加圖像種類(lèi)
1.5.刪除圖像種類(lèi)
2.圖像上傳模塊
2.1.選擇上傳圖像
2.2.顯示上傳圖像屬性?
2.3.預(yù)覽上傳圖片
2.4.上傳圖片
3.圖像下載模塊
3.1.選擇下載圖片種類(lèi)
3.2.顯示下載圖片列表
3.3.下載并預(yù)覽圖片
4.圖片瀏覽模塊
4.1.選擇瀏覽圖片的種類(lèi)
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è)代理類(lèi),通過(guò)此代理類(lèi)調(diào)用WCF數(shù)據(jù)服務(wù)完成對(duì)數(shù)據(jù)的CRUD操作
3.App.xaml VSM Visual State Manager,中文又稱(chēng)視覺(jué)狀態(tài)管理器(簡(jiǎn)稱(chēng)為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.圖像分類(lèi)管理窗體的功能設(shè)計(jì)與實(shí)現(xiàn)
異步調(diào)用WCF數(shù)據(jù)服務(wù)的步驟(查詢):
step0:首先獲取WCF數(shù)據(jù)服務(wù)客戶端代理類(lèi)的實(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ù)客戶端代理類(lèi)的實(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.圖像分類(lèi)瀏覽
圖像分類(lèi)瀏覽界面的實(shí)現(xiàn) PhotoViewer.xaml
代碼實(shí)現(xiàn)
10.圖像查詢
圖像查詢界面的實(shí)現(xiàn)
PhotoSearch.xaml
代碼實(shí)現(xiàn)