第1章 介绍项目:SmartCA系统 1
1.1 问题 1
1.2 设计 3
1.2.1 可靠性和可得性 3
1.2.2 伸缩性 4
1.2.3 可维护性 4
1.2.4 富客户应用功能 4
1.2.5 离线可得 4
1.2.6 Web访问 4
1.2.7 智能安装和自动更新功能 4
1.2.8 附加客户设备支持 4
1.3 解决方案 5
1.3.1 满足可靠性、可得性、伸缩性、离线可得和附加客户设备支持需求 5
1.3.2 满足可维护性需求 6
1.3.3 满足富客户应用功能需求 8
1.3.4 满足Web访问需求 9
1.3.5 满足智能安装和自动更新功能需求 10
1.4 总结 10
第2章 设计分层架构 11
2.1 问题 11
2.2 设计 11
2.2.1 设计Visual Studio解决方案 11
2.2.2 设计基础设施层 15
2.3 解决方案 16
2.3.1 实现Visual Studio解决方案 16
2.3.2 实现架构层 16
2.4 总结 51
第3章 管理项目 53
3.1 问题 53
3.2 设计 53
3.2.1 设计领域模型 53
3.2.2 定义项目聚合 54
3.2.3 定义聚合边界 55
3.2.4 设计仓储 56
3.2.5 编写单元测试 57
3.3 解决方案 63
3.3.1 Project类 63
3.3.2 实现仓储 75
3.3.3 实现服务类 88
3.3.4 实现项目信息视图模型 90
3.3.5 实现项目信息视图 100
3.4 总结 104
第4章 公司和联系人 105
4.1 问题 105
4.2 设计 105
4.2.1 设计领域模型 105
4.2.2 定义Company聚合和Contact聚合 106
4.2.3 定义聚合边界 107
4.2.4 设计仓储 107
4.2.5 编写单元测试 109
4.3 解决方案 114
4.3.1 Company类 114
4.3.2 Contact类 116
4.3.3 ProjectContact类 118
4.3.4 实现仓储 119
4.3.5 实现服务类 128
4.3.6 Company视图模型 132
4.3.7 Company视图 138
4.3.8 项目联系人视图模型 142
4.3.9 项目联系人视图 148
4.4 总结 149
第5章 递交传送 151
5.1 问题 151
5.2 设计 151
5.2.1 设计领域模型 151
5.2.2 定义Submittal聚合 152
5.2.3 定义聚合边界 153
5.2.4 设计仓储 153
5.2.5 编写单元测试 154
5.3 解决方案 157
5.3.1 实现Submittal仓储 172
5.3.2 实现Submittal服务类 180
5.3.3 Submittal视图模型 181
5.3.4 Submittal视图 186
5.4 总结 190
第6章 信息请求 191
6.1 问题 191
6.2 设计 191
6.2.1 设计领域模型 192
6.2.2 定义RFI聚合 193
6.2.3 定义聚合边界 193
6.2.4 设计仓储 194
6.2.5 编写单元测试 195
6.3 解决方案 198
6.3.1 实现RFI仓储 205
6.3.2 实现RFI服务类 215
6.3.3 RFI视图模型类 216
6.3.4 RFI视图 223
6.4 总结 223
第7章 提案请求 225
7.1 问题 225
7.2 设计 225
7.2.1 设计领域模型 226
7.2.2 设计提案请求聚合 226
7.2.3 定义聚合边界 228
7.2.4 设计仓储 228
7.2.5 编写单元测试 229
7.3 解决方案 232
7.3.1 提案请求类的私有字段和构造器 232
7.3.2 ProposalRequest属性 236
7.3.3 Validate方法 239
7.3.4 实现提案请求仓储 244
7.3.5 实现提案请求服务类 248
7.3.6 提案请求视图模型类 249
7.3.7 提案请求视图 251
7.4 总结 254
第8章 更改单 255
8.1 问题 255
8.2 设计 255
8.2.1 设计领域模型 256
8.2.2 设计更改单聚合 256
8.2.3 定义聚合边界 257
8.2.4 设计仓储 258
8.2.5 编写单元测试 260
8.3 解决方案 260
8.3.1 实现更改单仓储 272
8.3.2 实现更改单服务类 277
8.3.3 更改单视图模型类 278
8.3.4 更改单视图 281
8.4 总结 282
第9章 施工更改指令 283
9.1 问题 283
9.2 设计 283
9.2.1 设计领域模型 283
9.2.2 设计施工更改指令聚合 284
9.2.3 定义聚合边界 285
9.2.4 设计仓储 285
9.2.5 编写单元测试 286
9.3 解决方案 286
9.3.1 施工更改指令类的私有字段和构造器 287
9.3.2 实现施工更改指令仓储 294
9.3.3 实现施工更改指令服务类 300
9.3.4 施工更改指令视图模型类 301
9.3.5 施工更改指令视图 311
9.4 总结 311
第10章 和服务器同步 313
10.1 问题 313
10.2 设计 313
10.2.1 重新设计工作单元 313
10.2.2 设计同步 316
10.2.3 编写单元测试 316
10.3 解决方案 318
10.3.1 工作单元重构 318
10.3.2 和Synchronizer类同步 334
10.4 总结 342
第11章 客户会员管理系统 343
11.1 问题 343
11.2 设计 343
11.2.1 密码安全 343
11.2.2 设计客户会员管理系统 344
11.3 解决方案 345
11.3.1 客户会员管理系统领域模型类 345
11.3.2 客户会员管理系统单元测试 372
11.4 总结 374