一、训练目标:
1.全面了解基于Sivlight开发数据中心型RIA应用的典型实例
2.充分认识基于Silvlight技术开发的RIA应用程序的优缺点
3.充分认识开发Sivlight应用程序与开发普通ASP.NET应用程序的区别
4.熟练掌握基于ADO.NET数据服务(WCF数据服务)和Sivlight进行交互.
5.了解LINQ TO XML\LINQ TO ENTITY技术处理数据
6.会使用Silvlight的客户端独立数据存储技术来优化应用
7.了解基于WebClient实现文件的上传与下载
8.掌握XAML界面动态切换技术
9.熟练使用XAML来布局界面
10.熟练使用XAML控件
11.熟练掌握Silverlight与服务端的异步交互
二、项目使用工具介绍:
VS2010(.NET4.0)+Silvlieght4+Expression Blend4+SQL Server2008+WinXP
三、Silverlight的优缺点:
优点:
(1) Silverlight是基于WPF的动画模型,这是一种基于时间的(而不是基于帧)的动画技术,所以实现起来更方便同时动画更流畅。
(2)开发者可以选择多种编程语言来与Silverlight进行交互,如(C#\VB.NET,甚至于是javascript)
(3)在Silverlight应用程序中,用户接口使用的是XAML语言
(4)Siverlight支持Socket编程 ,网络编程功能强大
(5)Siverlight的流媒体技术与视频编码技术较flash有很大的加强
缺点
(1)因为Sliverlight的脚本语言是XAML语言,而这种文件是非压缩的,因此,导致一个Silverlight组件比较大
(2)Siverlight支持的操作系统比较少,如不支持Linux和SOlaris平台
(3)Siverlight仅仅支持PNG或JPEG格式的图片,对于其他类型的图片支持不是很好
系统功能分析
四大模块
1.图像种类管理
1.1.查看所有图像种类
1.2.查询图像种类
1.3.编程图像种类
1.4.添加图像种类
1.5.删除图像种类
2.图像上传模块
2.1.选择上传图像
2.2.显示上传图像属性
2.3.预览上传图片
2.4.上传图片
3.图像下载模块
3.1.选择下载图片种类
3.2.显示下载图片列表
3.3.下载并预览图片
4.图片浏览模块
4.1.选择浏览图片的种类
4.2.下载图片数据
4.3.以不同方式浏览图片
系统架构
是一个典型的三层架构
1.表示层(XAML)
2.业务逻辑层
3.数据访问层 (WCF数据服务)
4.SQL Server2008数据库
代码讲解
1.ADO.NET(WCF)数据服务技术 ADO.NET实体框架特性
1.实体数据模型,允许开发人员在高抽象层对数据进行建模
2.强大的映射引擎,允许方便的建立数据模型与数据存储定义之间的映射
3.支持使用实体SQL句法和LINQ操作数据
4.对象服务层,允许选择是否将查询结果以行/列记录还是.NET对象的形式对外提供
5.这一切都可以通过VS2010开发工具以向导的方式自动完成。减少开发者大量的数据访问层的开发时间.
2.使用ADO.NET(WCF)数据服务实现图像数据的访问
第一步:创建实体数据模型(edmx)
第二步:创建ADO.NET(WCF)数据服务
第三步:在我们的Silverlight应用程序中添加对此数据服务的引用
第四步:产生一个代理类,通过此代理类调用WCF数据服务完成对数据的CRUD操作
3.App.xaml VSM Visual State Manager,中文又称视觉状态管理器(简称为VSM) 开发人员和设计人员可以轻松的改变项目控件的视觉效果, 在项目中VSM主要用于创建自定义控件以及控件模板
4.主界面(MainPage.xaml)
5.全屏/窗口效果切换实现
Application.Current.Host.Content.IsFullScreen = true
6.首页面欢迎窗体的功能实现
7.图像分类管理窗体的功能设计与实现
异步调用WCF数据服务的步骤(查询):
step0:首先获取WCF数据服务客户端代理类的实现
step1:构造数据查询的Linq 语句
step2:对WCF数据服务配置一个查询请求
step3:调用BeginExecute()方法开启一个异步的查询请求,注意 这里需要配置一个跟踪异步查询结果的一个回调.
step4:当服务器返回数据时会执行查询时配置的回调方法
step5:在该回调方法中
1.结束异步操作,并获取服务器返回的结果集
2.解析结果集
3.更新UI层界面的内容的显示
异步调用WCF数据服务的步骤(修改)
step0:首先获取WCF数据服务客户端代理类的实现
step1:获取要修改的数据实体
step2:用该数据更新本地数据
step3:将更新之后的本地数据真正异步提交到后台的WCF,注意,这里需要配置 一个跟踪异数修改操作的回调函数
step4:在该回调方法中,获取回调的结果,做后继的客户端的逻辑的处理
注意:这里尤其要注意WCF数据服务的权限设置问题。 config.SetEntitySetAccessRule("*", EntitySetRights.All); config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
8.图像的上传与下载功能模块实现
图像的上传模块功能实现
界面层(UploadDownload.xaml)
代码讲解
图像的下载功能的实现
界面层(UploadDownload.xaml)
9.图像分类浏览
图像分类浏览界面的实现 PhotoViewer.xaml
代码实现
10.图像查询
图像查询界面的实现
PhotoSearch.xaml
代码实现