Silverlight WCF RIA服务 (三)创建一个RIA Services Solution

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。

此节需要:



 


  • Visual Studio 2008
     
  • Silverlight 3
     
  • WCF RIA Services Beta for visual Studio 2008 SP1

-or-

 

  • Visual Studio 2010 Beta 2
     
  • Silverlight 4 Beta
     
  • WCF RIA Services Preview for Visual Studio 2010
     
  • AdventureWorksLT sample database




 

创建包含RIA Services Link的解决方案

 

  1. 在VS中,创建一个新的RIA Services项目,选择 File->New->Project。此时出现新项目对话框。
     
  2. 选择Silverlight应用程序模板,并命名为RIAServicesExample.
     
  3. 点击OK。出现New Silverlight Application对话框出现。
     
  4. 选择Enable WCF RIA Services选项框。现在将会在客户端和服务端之间创建连接。
     
  5. 点击OK来创建解决方案。这个方案包含两个项目:客户端和服务端。客户端被命名为RIAServicesExample,其中有用来创建表示层的SL代码。服务端被命名为RIAServicesExample.Web,其中包含中间层的代码。



创建数据模型 Data Models

在这部分,创建表示来自AdventureWorksLT数据库的数据的ADO.NET实体类。RIA Services与各种各样的数据模型类和数据源一起工作。

(注:在VS2010中使用实体数据模型时,应该选择Include foreign key columns in the model选项。当用实体数据模型向导时,这个选项是默认选择的。还应该使用在程序集内嵌入的实体数据模型映射信息的默认行为。)

---使数据在中间层可利用

  1. 在解决方案资源管理器中,右键点击服务端项目(RIAServicesExample.Web),选择添加->新项目, 添加新项目对话框将出现。
     
  2. 在类别列表中,选择数据并选择ADO.NET Entity Data Model模板。
     
  3. 命名为AdventureWorksModel.edmx并点击添加。 出现实体数据模型向导。
     
  4. 选择模型内容 中,选择 从数据库生成 ,然后点击下一步
     
  5. 选择数据连接 中,创建到数据库的数据连接并点击下一步
     
  6. 选择数据库对象 里,选择 Address, Customer, CustomerAddress表。
     
  7. 点击 完成 ,就为表生成了实体模型。
     
  8. 生成解决方案

创建域服务Domain Service

在这节中,将添加一个对中间层的domain service。domain service 把服务端的数据实体和操作
向客户端公开。可以在数据服务中加入商业逻辑来管理客户端如何与数据交互。

---创建domain service


 

  1. 右键点击服务端项目,选择 添加->新项目
     
  2. 在列表中选择 Web, 然后选择 Domain Service Class 模型。
     
  3. 命名类为CustomerDomainService.cs(或 CustomerDomainService.vb)。
     
  4. 点击 添加。 出现 添加新域服务类 对话框。
     
  5. 选择自定义实体。
     
  6. 确定选了,Enable client access选项, 选择对应 自定的 Enable Editing选项。
  7.  

  8.  
  9. 点击 OK,就生成了domain service 类。
     
  10. 打开CustomerDomainServie.cs文件。会注意到文件有如下属性:



 

  • CustomerDomainService类派生于LinqToEntitiesDomainService(TContex),这个基类是RIA Services框架内的一个抽象类。由于domain Services公开了ADO.NET 实体数据类,此基类是自动应用的。
     
  • 一个泛型基类被绑定到上一步创建的实体类。
     
  • CustomerDomainService类被标记上EnableClientAccess属性,来指出这个类是可以被客户层访问的。
     
  • 生成了一个查询方法。在VS2008中,这个查询叫做GetCustomer。在VS2010Beta2中,这个查询方法叫做GetCustomers。这个方法返回没有过滤和排序的所有项。
     
  • 还生成了 InsertCustomer, UpdateCustomer, DeleteCustomer方法。

创建Silverlight客户端

在其他的演练中,将在domain service里加入商业逻辑。在本演练中,只是用生成的GetCustomers 方法。

由于在客户端和服务端存在着一个RIA Services Link,当生成解决方案时就会产生客户代理类。这个代理类允许我们从客户端访问数据。

--- 查看产生的客户端代理类


 

  1. 生成解决方案
     
  2. 在解决方案资源管理器中,在客户端项目中点击显示所有文件。注意到在Generated_Code文件夹中包含了一个代码文件。





 

3. 打开这个代码文件。注意到文件有下面的属性:

  • 生成一个派生于WebContextBase类的WebContext类。
     
  • 生成一个派生于DomainContext类的CustomerDomianContext类。这个类中有一个叫做GetCustomersQuery(在VS2008中是GetCustomerQuery)方法,它对应于在domain service中创建的查询方法。
     
  • 生成一个派生于Entity类的Customer类,此类对应着domain service公开的实体。这个客户端的Customer实体类对应于服务端的Customer实体。
技术谣言识别指南:从Silverlight误读看开发者信息判断力 在技术传播中,‘框架被抛弃’‘某技术已死’等断言常源于信息压缩与语境剥离。理解一项技术的真实定位,需回归其核心原理——如Silverlight并非浏览器插件的简单复刻,而是WP7系统级运行时;其价值也不在跨平台代码复用,而在开发者心智模型与工程能力的可迁移性。这种基于产品边界、演进节奏与商业逻辑的维分析,构成了抵御技术噪音的技术判断力基础。尤其在HTML5崛起与PDC战略转向的交叉节点,Silverlight的‘隐身式演进’揭示了技术生命周期中常见的策略适配现象:分发模式升级不等于技术退场,平台重心转移不 阅读详情

相关推荐

Silverlight技术演进真相:被误读的跨平台战略

跨平台开发框架是企业级应用构建的核心基础设施,其演进逻辑需回归技术本质而非媒体叙事。Silverlight并非简单浏览器插件,而是微软‘屏一云’战略中Windows Phone 7的原生应用开发框架,与WPF、XAML共享底层抽象与工程范式。它在富企业应用(LOB)、高保真媒体渲染、离线交互等场景具备HTML5在2010–2012年间难以替代的技术价值。这种基于场景分工的‘前端分层、后端统一’架构,体现了成熟技术栈的战略聚焦而非退场。对.NET开发者而言,掌握XAML+MVVM+DependencyObj

unixboy 523

SilverLight使用WCF RIA SERVICE实现对数据库的操作 (添加,删除,更新)

SilverLight搭建WCF聊天室详细过程 系列文章为大家演示了如何使用SilverLight搭建WCF即时通讯系统过程,多人视频正在开发中,我会持续更新这个系列,以后几篇我会对群里提出最多的问题进行解答并给出设计思路,WCF和IIS配置已经包含在此系列,希望各位朋友在提问前先找找前面的帖子,QQ群:.NET集中营45656086,位置已经不多,群里高手很多,而且比较有开源精神,我是营长,有问

Swarb的博客:低头做事,抬头做人 3483

宝塔面板如何绑定域名与ssl证书达到安全登录

1.给宝塔面板绑定一个A记录的域名,去你的域名dns去解析绑定一个例如:bt.xxx.com。这时浏览器输入: bt.xxx.com:面板端口/安全入口, 可以看到宝塔面板登入入口了。4.把这个域名bt.xxx.com的ssl证书复制到:面板设置——面板ssl配置里头。5.最后把:绑定的域名填上并保存,日后就不能按IP地址登录了。3.给这个站点申请Let's Encrypt的ssl证书。2. 给宝塔添加一个数据库为空的站点。

hu5566798的博客 153

稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询...

稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询 转载于:https://www.cnblogs.com/Ken-Cai/archive/2011/04/29/2032729.html...

weixin_30394251的博客 142

Silverlight WCF RIA服务(九)Domain Service 2

演练:添加查询方法 查询数据源的方法有时被叫做查询方法。在WCF RIA Services中,查询方法必须以框架承认的方式来定义。此外,只返回一个实体的查询和有可能返回多个实体的查询定义是不同的。 当我们建立一个新的domain service类并在Add New Domain Service Class 对话框中指定实体时,RIA Services框架会自动为每一个服务端公开的实体创建一个

Eric_K1m的专栏 996

WCF RIA 服务)- 创建一个RIA Services Solution

WCF RIA 服务)- 创建一个RIA Services Solution在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。此节需要:Visual Studio 2008

blackant2的专栏 4696

Silverlight 4+WCF RIA ServiceS商业应用 5---关联的DomainService和报表的展示

 part1: 如何使用RIA Servicespart2: RIA Services更新和验证part3:RIA Services数据新增part4:皮肤的更改part5:报表的展示part6:Endpoint的设置part7:如何使用RIA Service Class Library part8:url重写和界面友好对于Chart的使用最重要的是我们的数

我的博客新地址: http://www.n-pei.com 6699

WCF RIA Service新增数据后前台刷新数据 .

看帖子里有人要求我写一个在使用WCF RIA Service更新数据后Datagrid或者是其它控件中刷新数据的例子。 可能对于初学者或者是那些对异步数据传输不是很了解的人来说,有点费解。 先说明下Update的情况: 你必须要明白的是在Silverlight或者是WPF中数据绑定有种方式。而你需要在更新Datasource后前台的datagrid也同步更新请千万记得Binding的方式是

sam1012的专栏 562

Silverlight RIA Services Class Library类库使用1.

上午整理了silverlight business application商业模板的结构.这个模板我在Silverlight 2.0版本以前是没有见过. 微软是从Silverlight 3.0版本中添加进来. 当时发布正式版提出一个广告语叫"See the light", 在SL一个论坛上找到以前这个广告的宣传配图. 在以前微软SL宣传中使用另外一个"Silverlight up on y...

weixin_33724570的博客 161

w232基于springboot高校新生宿舍预选系统的设计与实现

内容主要介绍高校新生宿舍预选系统,基于Springboot、Mysql、B/S结构,功能包括学生管理、宿舍预选分配等。还有作者简介和联系方式等。摘要应概括核心。摘要:本文介绍基于Springboot、Mysql和B/S结构的高校新生宿舍预选系统,实现学生管理、专业班级管理、预选与分配信息、宿舍信息及新闻资讯等功能,旨在提升宿舍分配效率与信息化管理水平。

卓怡学长的博客 172

软考架构师90天冲刺|DAY44·Redis高级应用

已成为近年来数据库与缓存部分的绝对高频考点。:2024年综合知识真题考查了"Redis默认的持久化方式",答案是RDB,但生产环境推荐AOF或混合持久化。:2023年案例分析考查了"Redis高可用方案设计",要求考生选择合适的集群方案并说明理由。HSET cart:user:1001 product:1001 2 # 商品1001,数量2。:2023年综合知识真题考查了"适合实现排行榜功能的数据结构",答案是ZSet(有序集合)。的比重,特别是在2024年的考试中,Redis设计成为案例分析的重点题目!

Mc、科 169

数据库技术】复习日:关系代数 + SQL + 规范化(整理对比表)

适合读者:软考中级备考同学阅读时间:7分钟内容:关系代数、SQL查询、规范化大模块核心对比表、易错点、记忆口诀汇总。

bianyuan172的博客 434

素材备份与换机恢复:一套本地优先的素材库备份方案复盘

影栈素材库实践:本地优先的素材备份与换机恢复方案,元数据库与文件目录双层设计复盘。

Change the World by Program 170
上一篇: Silverlight WCF RIA服务 (二)解决方案结构
下一篇: Silverlight WCF RIA服务(四)如何添加和移除RIA Services Link
sam1012
博客等级 码龄18年 17粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值