第3章 业务框架实现
Business Framework Implementation
在第1章中,我介绍了业务对象和分布式对象的一些背景知识。在第2章中,我又讨论了业务框架的设计。在本章,我们要开始创建CSLA.NET框架。本章的重点是支持可编辑和只读对象和集合所需的功能。明确地说,本章的目的就是创建下列的类,以及所有的工具类及其功能:
Csla.BusinessBase
Csla.BusinessListBase
Csla.ReadOnlyBase
Csla.ReadOnlyListBase
这四个基类就是大多数业务对象都要继承的主要类。第5章会涉及其他的基类:CommandBase和NameValueListBase。
BusinessBase和BusinessListBase需要很多其他的类。例如,Csla.BusinessBase从Csla.Core.BusinessBase继承而来,而Csla.Core.BusinessBase从Csla.Core.UndoableBase继承而来。它还使用了ValidationRules和AuthorizationRules类。
这样的结果就是在本章中我们会创建这四个基类,以及Csla.Core名字空间中的类型、类、Csla.Validation和Csla.Security名字空间的大多数类型。表3-1列出了所有将在本章中讨论的类。
表3-1 支持可编辑和只读业务对象所需的类
|
类型 |
描述 |
|
Csla.Core.IBusinessObject |
所有可编辑和只读的基类都要实现的接口 |
|
Csla.Core.IUndoableObject |
所有可编辑的基类都要实现的接口 |
|
Csla.Core.IEditableCollection |
所有可编辑的集合基类都要实现的接口 |
|
Csla.Core.IReadOnlyObject |
所有只读的基类都要实现的接口 |
|
Csla.Core.IReadOnlyCollection |
所有只读的集合基类都要实现的接口 |
|
Csla.Core.ICommandObject |
CommandBase要实现的接口 |
|
Csla.Core.ObjectCloner |
克隆任何可序列化的对象 |
|
Csla.Core.BindableBase |
实现了INotifyPropertyChanged接口 |
|
类型 |
描述 |
|
Csla.NotUndoableAttribute |
用来标记域,使得N层撤销忽略该域的值 |
|
Csla.Core.UndoableBase |
实现N层撤销功能 |
|
Csla.Core.BusinessBase |
实现可编辑的对象的功能和数据绑定的支持 |
|
Csla.Core.ReadOnlyBindingList |
从BindingList |
|
Csla.Validation.RuleHandler |
为规则方法定义方法签名 |
|
Csla.Validation.RuleArgs |
定义传给规则处理器方法的参数 |
|
Csla.Validation.RuleMethod |
包含某个规则方法的信息 |
|
Csla.Validation.ValidationRules |
维护与某个对象属性相关的所有规则的列表 |
|
Csla.Validation.BrokenRule |
代表在BrockenRulesCollection中的某一个失效规则 |
|
Csla.Validation.BrokenRulesCollection |
为某个业务对象维护当前失效的验证规则列表 |
|
Csla.Security.RolesForProperty |
为某个特定的对象属性维护允许或拒绝访问的角色列表 |
|
Csla.Security.AuthorizationRules |
使用RolesForProperty对象为所有的对象属性维护允许或拒绝访问的角色列表 |
|
Csla.BusinessBase |
所有可编辑的业务类都要继承的基类 |
|
Csla.BusinessListBase |
所有可编辑的业务集合类都要继承的基类 |
|
Csla.ReadOnlyBase |
所有只读的业务类都要继承的基类 |
|
Csla.ReadOnlyListBase |
所有只读的业务集合类都要继承的基类 |
第2章已经解释了这些类存在的背后的推理过程和它们在名字空间中是如何被组织起来的。在本章中,我会把精力主要放在每个程序集和类实际的实现上。
本章会逐个地介绍每个类是怎样创建的。很显然,要讲的东西太多了,所以本章只会涉及每个类中的那些关键代码。你也可以从Apress的网站(www.apress.com)下载本书的所有代码,以便在讨论的时候可以看到完整的类或类型。
| 回书目 上一节 下一节 |
|
· Linux服务器架设自测获.. · 边界网关安全防护自测.. · Cisco CCNA最新真题自.. · 我在美联储监管银行 书.. · 我在美联储监管银行 目.. · 我在美联储监管银行 前.. |
· 入侵的艺术 目录 · 入侵的艺术 前言 · 网管员全真面试题自测.. · 子弹的本质—— 形势没.. · 学习大量的词汇—— 对.. · 重用的情况怎样 |
|
|||
| · 病毒查杀专题 · 802.11n:下一代的无线.. · 反垃圾邮件技术应用 · 运营商封堵非法ADSL共享 · Windows Home Server .. · Windows Server 2008 · Sun以10亿美元并购开源.. · VoIP的安全性探讨 |
· 甲骨文85亿美元收购BEA · 如何优化IT 控制能耗 · 龙芯要做中国的“奔腾” · 手机病毒揭密 · 清除流氓软件——51CTO.. · 华为、贝恩资本22亿美.. · 网络安全之网吧安全 · 数字证书技术ABC |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · 深入了解PGP加密技术 · MySQL数据库备份 · 病毒查杀专题 |
· VPN技术 · Solaris 10 配置管理 · Linux 基础 · Linux防火墙 · SSL VPN详细知识 · 路由器设置与口令恢复 · 打造安全服务器 · Linux 集群技术专题 |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · MySQL数据库备份 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 常用交换机典型配置 · Linux 集群技术专题 · VPN技术 · 路由器设置与口令恢复 · Linux 基础 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0 Web Part编.. |
·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0服务器控件之.. |
| ·在VM6中做Windows Server.. ·让服务器自动启动失败的E.. |
·使用ISA Server保护内部.. ·使用WUCDCreator将SCSI、.. |
| ·这才叫电脑高手! ·网络安全中的“秘语”VS .. |
·三转CHM文件故障解决 ·错误是可以避免的——系.. |
| · 思科警告统一通信管理存.. · 家用路由器存在严重缺陷.. · 华为2008市场攻略 240亿.. |
· 浅谈国内的渗透评估过程 · VPN安全技术与应用 · 企业如何进行计算机取证.. |
| · IDC:2008年IT市场10大.. · Visual Studio 2005开发.. · 测试开发人员参考手册 |
· 年初17大热门技术 年底.. · 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. |
| · Linux操作系统下文件和.. · 热点:国内大型企业如此.. · IBM和Sun起争议 坚持不.. |
· 中小企业刀片市场将达20.. · IT人员应当了解的七个存.. · IDC:2008年IT市场10大.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· IT人员应当了解的七个存.. · 希捷承认部分硬盘暗藏病.. · 硬盘之父获得诺贝尔物理.. |