Silverlight WCF RIA服务(七)中间层简介
来源:互联网 发布:手泡水起皱 知乎 编辑:程序博客网 时间:2024/06/11 04:47
在3-层结构的应用程序中,中间层包含了如何管理在表示层和数据层之间交互的逻辑。我们在中间层应用商业逻辑和验证来确定数据是可接受的。例如,在人力资源应用程序中,我们可以提供一个允许员工提交休假申请的界面,但我们应该确定员工的可休假额度不小于0。因此,我们在提交申请之前,在中间层添加逻辑来检测员工的休假额度。
为了创建最好的RIA客户端用户体验,例如Silverlight应用,我们经常想在客户端执行也可在服务端执行的同样的商业逻辑。因此,中间层的代码在客户端和服务端同步就变得非常重要。WCF RIA Services使我们可以使用.NET Framework在中间层写应用逻辑。RIA Services从中间层为表示层生成代码,所以这些层总是同步的。
同数据访问层一起工作
当我们使用RIA Services来开发中间层时,可以使用任何种类的数据访问层。例如,我们可以连接下面的数据访问层:
- Entity Data Model
- LINQ to SQL object model.
- Common language runtime (CLR) object.
- Web service that exposes data from its source.
我们可以对数据模型应用验证检测以对来自表示层的数据值执行限制。
在有些情况下,我们不得不与那些不仅存在于一个表中的数据进行交互。RIA Services提供了一个可编程的框架,它支持更改级层数据模型(例如订单和订单详情的关系),继承数据模型(例如父和孩子关系),数据映射模型(例如从客户和地址表中提取数据放到一个单独的数据模型中的非正规数据)。
Domian Services
RIA Services提供DomainService类,这个类是所有做为数据层的数据接口类的基类。当创建一个domain Service的实例时,就指定了这个想从客户端访问的实体类。还可以通过domain service指定允许的数据操作,也可以向domain service中添加应用逻辑。对每一个向客户端开放的domain service,RIA services都将会为客户端应用程序生成一个DomainContext类。
Shared Code
在某些情况下,我们不得不在中间层项目和表示层项目中共享代码,但又不想把他们放入domain services 或 一个实体类。 例如,可能不得不引用一个包含应用逻辑并被许多其他项目使用的类库。或者,不得不创建一个从实体类连接值或改变值的自定义属性,例如以"last name, first letter of first name"的格式来显示名字。RIA Services允许我们在中间层包含类或程序集,这些类或程序集在客户端无需改动就可以访问。
生成客户端代码
当使用RIA Services来连接中间层和表示层时,RIA Services框架自动从中间层为客户端生成代码。以下中间层代码会生成客户端代码:
- 每个注释着EnableClientAccessAttribute属性的domain service。
- 每个domain service引用的实体类。
- 由共享命名约定命名的代码文件(*.shared.cs或*.shared.vb)都会原样地拷贝到客户端项目中。
通过客户端代理类,客户端也可以访问中间层代码。当中间层的代码改变时,客户端的代理类会自动重生成。所以表示层总是与中间层同步。
- Silverlight WCF RIA服务(七)中间层简介
- Silverlight WCF RIA服务(七)中间层简介
- WCF RIA 服务 (七)- 中间层 简介
- Silverlight WCF RIA服务(一)简介
- Silverlight WCF RIA服务(一)简介
- Silverlight WCF RIA服务(六)创建RIA Services 类库
- Silverlight WCF RIA服务(六)创建RIA Services 类库
- Silverlight WCF RIA服务(二十)Silverlight 客户端
- Silverlight WCF RIA服务(二十一)Silverlight 客户端 2
- Silverlight WCF RIA服务(二十二)Silverlight 客户端 3
- Silverlight WCF RIA服务(二十三)Silverlight 客户端 4
- Silverlight WCF RIA服务(二十四)Silverlight 客户端 5
- Silverlight WCF RIA服务(二十五)Silverlight 客户端 6
- Silverlight WCF RIA服务(二十七)Silverlight 客户端 8
- Silverlight WCF RIA服务(二十八)Silverlight 客户端 9
- Silverlight WCF RIA服务(二十九)Silverlight 客户端 10
- Silverlight WCF RIA服务(二十)Silverlight 客户端
- Silverlight WCF RIA服务(二十一)Silverlight 客户端 2
- pku 1690 (Your)((Term)((Project))) (模拟题)
- RTSP实例方法
- Wince USB keyboard doesn't work
- 输出全排列
- Windows网络编程细节问题
- Silverlight WCF RIA服务(七)中间层简介
- 开发ALV的基本流程
- DECLARE_HANDLE 宏解析 句柄的本质 / 句柄是什么
- IMF-1
- IPC
- zsh安装配置指南
- 树的子结构
- DLL木马的编写要点与思路
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值