日期:2014-05-16 浏览次数:20532 次
SilverLight 目前已经成为互联网 应 用当中的终点,其本身具有的巨大市场前景,尤其是提供丰富的网路表示控件方面已经成为了flash的最大竞争对手,几天我们通过一个简单的示例演示如何使 用SilverLight创建一个使用数据访问的应用,同时为了配合微软最新的.NET 3.5技术,这个例子还将使用微软的LINQ数据源作为数据集合的基础,使用WC F进行远程的数据访问,从而实现分布式调用。
??? 整个过程共分为5个部分
??? 1. 创建一个SilverLight应用
??? 2. 创建一个使用LINQ的数据源映射对象
??? 3. 创建一个WC
F应用
??? 4. 在SilverLight中添加对WCF的引用
??? 5. 在SilverLight添加DataGrid数据显示控件
??? 1 创建一个SilverLight应用
??? 本程序使用Visual Studio 2008中创建新的SilverLight应用。在Visual Studio 2008中只要安装了SilverLight 2.0 Beta 1的Visual Studio 2008模板即可看到如下图1.1所示的新工程模板,
?
??? 图1.1 新建SilverLight 2.0工程
??? 在新建Sl工程的时候有一个选项,就是是否添加Asp.NET的网站作为宿主如下图1.2所示
?
??? 图1.2 选择是否添加Asp.net网站应用
??? 在这里我们为了后面编辑数据库应用服务器 ,选择添加ASP.NET 2.0的网站,添加之后的工程窗体项目文件如下图1.3所示
?
??? 1.3 添加工程以后的应用界面
??? 可以看到Sl被编译成为了一个SilverLightDemo.xap文件,这个文件到底是什么内容呢,我们在这里对它的内容进行解密,首先修改文件后缀 为zip之后解压缩,就可以看到文件是把SL运行需要调用的程序打包之后随应用程序提供。图1.4显示了这几个文件
?
??? 图1.4 SilverLightDemo.xap所包含的文件
??? 这些文件除了基本的SL库文件之外还有一个应用程序描述文件,AppMainfest.xaml,这个文件记录了当前应用程序所使用的基本业务逻辑和表示层内容。
??? 2 创建一个使用LINQ的数据库映射对象
??? 下一步就要建立一个数据库,这里首先建立一个数据库表结构,本例中我们建立的是一个微软的NorthWind数据库中的Custom表进行数据访问,该数据库从微软的官方网站就可以下载 。http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
??? 数据库表结构如下图1.5所示
??? 图1.5 Customers表结构
??? 下一步添加LINQ表引用数据库,首先添加LINQ实体对象如下图1.6所示:
?
??? 图 1.6 显示添加了一个LINQ to sql对象
??? 添加之后就可以通过服务器 浏览器找到数据库实体,并把它添加到LINQ实体当中,添加的方法很简单,只需要拖拽表即可。添加之后如图1.7所示
?
??? 图1.7 添加Customer之后就可以这个表结构
??? 这里我们还要对数据库进行添加,所以需要对数据库添加进行验证,这一验证会影响我们后面的数据库更新操作,所以需要修改每一个字段的属性为UpdateCheck Never,如下图1.8所示
?
??? 图1.8 修改字段更新方式
??? 3.添加WCF引用服务
??? 下一步即可添加一个WCF引用服务,这里的WCF服务添加是在工程中添加一个WCF Service,如下图1.9所示:
?
??? 图1.9 WCFService添加效果图
??? 添加之后WCF Service文件会创建2文件IServic.cs和Service.cs文件,前者定义接口的契约描述,后者定义实际接口的内容,我们首先对前者进行编程,说明服务器契约内容。代码如下所示
????
[OperationContract] ??????? List<customer> GetAllCustomer(); ??????? [OperationContract] ??????? [OperationContract] |
?
??? 图1.20 实现接口内容
??? 接口层实现的代码如下所示
public List<Customer> GetAllCustomer() ??? { ??????? DataClassesDataContext db = new DataClassesDataContext(); ??????? var customer = from p in db.Customers ?????????????????????? select p; ??????? return customer.ToList<Customer>; ??? } ??? public Product SaveCustomert(Customer customer)
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|