第1章 分布式体系结构 1
1.1 逻辑和物理体系结构 1
1.1.1 复杂性 2
1.1.2 逻辑模型和物理模型之间的关系 3
1.1.3 一个五层逻辑体系结构 8
1.1.4 应用逻辑体系结构 12
1.1.5 接下来的内容 15
1.2 管理业务逻辑 15
1.2.1 业务逻辑的潜在位置 16
1.2.2 业务对象 19
1.2.3 分布式对象 22
1.3 体系结构和架构 29
1.4 小结 30
第2章 架构设计 31
2.1 基本设计目标 32
2.1.1 n层撤销功能 34
2.1.2 跟踪违反业务规则 36
2.1.3 跟踪对象是否发生变化 37
2.1.4 子对象的强类型集合 37
2.1.5 针对UI开发人员的一种简单抽象模型 38
2.1.6 支持数据绑定 43
2.1.7 对象永久性和对象-关系映射 46
2.1.8 基于表的安全性 52
2.2 架构设计 53
2.2.1 创建业务对象 54
2.2.2 n级撤销功能 59
2.2.3 数据绑定支持 61
2.2.4 跟踪业务规则 64
2.2.5 数据入口 65
2.2.6 基于表的安全性 79
2.3 命名空间组织 81
2.4 组件设计 83
2.5 小结 84
第3章 关键技术 86
3.1 remoting技术 87
3.1.1 基本概念 87
3.1.2 remoting服务器 90
3.1.3 remoting客户端 96
3.2 串行化 101
3.2.1 串行化的类型 102
3.2.2 <Serializable()>属性 103
3.2.3 <NonSerialized()>属性 103
3.2.4 串行化和remoting 104
3.2.5 手动调用串行化 106
3.3 Enterprise Services(COM+) 108
3.3.1 Enterprise Services和COM+上下文 108
3.3.2 在Enterprise Services中运行代码 109
3.3.3 两阶段分布式事务 113
3.4 反射 115
3.5 属性 118
3.5.1 创建自定义的属性 119
3.5.2 检测自定义属性 120
3.6 .NET基于角色的安全性 121
3.7 ADO.NET 121
3.7.1 ADO.NET体系结构 122
3.7.2 ADO.NET的基本应用 124
3.7.3 ADO.NET事务 133
3.8 小结 134
第4章 业务架构的实现 136
4.1 创建CSLA.NET解决方案 137
4.2 CSLA.Core.BindableBase 138
4.2.1 Core.BindableBase 139
4.2.2 Core.BindableCollectionBase 140
4.3 CSLA 144
4.3.1 NotUndoableAttribute 146
4.3.2 Core.UndoableBase 146
4.3.3 BusinessBase 158
4.3.4 BrokenRules 172
4.3.5 BusinessCollectionBase 182
4.3.6 ReadOnlyBase 197
4.3.7 ReadOnlyCollectionBase 198
4.3.8 SmartDate 200
4.4 小结 207
第5章 数据访问与安全性 208
5.1 面向对象编程的注意事项 209
5.2 CSLA 210
5.2.1 BusinessBase 211
5.2.2 BusinessCollectionBase 215
5.2.3 ReadOnlyBase 216
5.2.4 ReadOnlyCollectionBase 217
5.3 客户端DataPortal 219
5.3.1 TransactionalAttribute 220
5.3.2 DataPortal 221
5.4 CSLA.Server.DataPortal 231
5.5 CSLA.Server.ServicedDataPortal 243
5.6 DataPortal remoting主机 248
5.7 CSLA.Security 256
5.7.1 安全性表 256
5.7.2 BusinessIdentity 264
5.7.3 BusinessPrincipal 270
5.8 实用程序类 275
5.8.1 SafeDataReader 275
5.8.2 NameValueList 278
5.9 小结 286
第6章 面向对象的应用程序设计 287
6.1 应用程序需求 288
6.2 对象设计 291
6.2.1 初始设计 291
6.2.2 修改设计 293
6.3 使用CSLA.NET 302
6.4 数据库设计 304
6.4.1 创建数据库 305
6.4.2 表 305
6.4.3 数据库图 308
6.4.4 存储过程 310
6.5 创建数据库项目 316
6.6 小结 319
第7章 业务对象的实现 321
7.1 业务对象的生存期 321
7.1.1 创建对象 321
7.1.2 获取对象 325
7.1.3 更新可编辑对象 327
7.1.4 处理和确定对象 331
7.2 业务类结构 332
7.2.1 共同的特征 333
7.2.2 类结构 338
7.3 项目跟踪对象 362
7.3.1 创建项目 363
7.3.2 业务类的实现 365
7.4 小结 415
第8章 Windows Forms UI 417
8.1 Windows Forms UI 417
8.1.1 应用程序配置 418
8.1.2 主窗体 422
8.1.3 登录窗体 425
8.1.4 项目列表 431
8.1.5 项目编辑 433
8.1.6 删除项目 448
8.1.7 资源列表 449
8.1.8 资源编辑 452
8.2 小结 461
第9章 Web Forms UI 462
9.1 Web开发和对象 462
9.2 状态管理 464
9.2.1 Web服务器上的状态 464
9.2.2 向/从客户端传递状态 467
9.2.3 文件或数据库中的状态 468
9.3 Web Forms界面 469
9.3.1 应用程序配置 470
9.3.2 UI概述 473
9.3.3 默认窗体 474
9.3.4 登录窗体和安全性配置 475
9.3.5 Projects窗体 481
9.3.6 ProjectEdit窗体 487
9.3.7 ChooseRole窗体 499
9.3.8 AssignResource窗体 504
9.3.9 Resources窗体 507
9.3.10 ResourceEdit窗体 510
9.3.11 AssignToProject窗体 520
9.4 小结 523
第10章 Web服务接口 524
10.1 Web服务概述 525
10.1.1 SOAP 525
10.1.2 基于消息的通信 526
10.1.3 SOAP和Web服务 526
10.1.4 SOAP、Web服务以及.NET架构 527
10.2 作为接口的Web服务 528
10.2.1 每一层都需要Web服务吗 528
10.2.2 作为“用户界面”的Web服务 530
10.2.3 Web服务与契约 530
10.3 实现Web服务接口 532
10.3.1 Web服务设计 532
10.3.2 Web服务实现 536
10.4 Web服务用户实现 553
10.4.1 创建项目 554
10.4.2 处理用户的安全性 555
10.4.3 调用Web服务 558
10.5 小结 558
第11章 报表与批处理 560
11.1 报表和批处理的难点 560
11.2 处理分布式环境 561
11.2.1 避免数据转移 562
11.2.2 提供后台处理 562
11.3 处理面向对象应用程序 563
11.3.1 报表和对象 563
11.3.2 批处理和对象 564
11.4 批队列服务器 564
11.4.1 CSLA.BatchQueue设计 565
11.4.2 创建BatchQueue程序集 569
11.4.3 创建并运行批处理任务 607
11.5 从对象加载一个DataSet 610
11.5.1 ObjectAdapter类 611
11.5.2 使用ObjectAdapter产生报表 624
11.6 小结 626
附录A NetRun 627
A.1 非接触部署 627
A.1.1 安全性问题 628
A.1.2 对象串行化操作工作区 629
A.1.3 读取应用程序配置设定 629
A.1.4 防止浏览器弹出 630
A.2 NetRun设计 631
A.3 NetRun实现 632
A.3.1 Main模块 633
A.3.2 Launcher类 637
A.4 安装NetRun 645
A.5 使用NetRun 646
A.6 小结 646