第Ⅰ部分 实用企业开发介绍 3
第1章 企业设计概念 3
1.1企业体系结构 4
1.2企业开发 6
1.2.1可靠性 6
1.2.2灵活性 6
1.2.3关注点分离 6
1.2.4可重用性 7
1.2.5 可维护性 7
1.3 Microsoft的企业开发现状 9
1.3.1 COM因素 10
1.3.2转到Java 10
1.3.3NET的发展历程 11
1.4本章小结 14
第2章 企业代码 15
2.1看待代码的新方式 15
2.1.1模块性 16
2.1.2松散耦合的类 17
2.1.3单元测试 24
2.1.4控制反转容器 25
2.2本章小结 30
第Ⅱ部分 新代码——改变构建代码的方式 35
第3章 改变类的依赖 35
3.1评估代码的依赖程度 35
3.1.1刚性 46
3.1.2灵活性 46
3.1.3关注点分离 47
3.1.4可重用性 47
3.1.5 可维护性 47
3.2关注点分离和识别模块性 48
3.3依赖倒置准则 62
3.4使用依赖注入彻底解放类 65
3.4.1刚性 71
3.4.2灵活性 71
3.4.3关注点分离 71
3.4.4 可重用性 71
3.4.5 可维护性 71
3.5本章小结 73
第4章 测试驱动开发 75
4.1井字游戏与测试驱动开发:示例 76
4.1.1井字游戏需求 77
4.1.2测试架构 113
4.1.3标识可测试元素 114
4.1.4编写能够运行的和有益的单元测试 115
4.2重构 120
4.3重构工具 120
4.3.1 ReSharper 120
4.3.2 Refactor Pro 121
4.4处理测试驱动开发中的依赖——模拟、存根和伪对象 121
4.5模拟架构 131
4.5.1 Rhino Mocks 131
4.5.2 Moq 131
4.5.3 NMock 131
4.6本章小结 132
第5章 进一步简化——控制反转 135
5.1创建依赖 135
5.2工厂模式 141
5.3服务定位器 145
5.4控制反转和loC容器 147
5.5依赖注入与控制反转的对比 149
5.6 StructureMap 153
5.6.1使用流畅接口连接 154
5.6.2使用属性连接——插件族 157
5.6.3使用配置元数据连接 161
5.7是否要使用XML 163
5.8本章小结 164
第Ⅲ部分 企业设计模式 169
第6章 进入关注中心 169
6.1中间件简介 169
6.2西部狂野 170
6.3分层设计 170
6.4互联网时代 171
6.5企业中间件时代 173
6.6 WCF Web服务 176
6.7消息传递模型 185
6.8关于SOA的简要解释 186
6.9本章小结 187
第7章 编写自己的中间件 189
7.1业务逻辑层 189
7.2面向业务的模式 190
7.2.1事务脚本 190
7.2.2活动记录模式 192
7.2.3领域模型模式 194
7.2.4模式选择 198
7.3为业务服务 198
7.3.1服务层 198
7.3.2将模式付诸实践 200
7.3.3按揭贷款资格审查应用程序 200
7.3.4采用该领域中的语言 201
7.4领域驱动设计简介 202
7.4.1实体 202
7.4.2值对象 202
7.4.3聚合与聚合根 203
7.4.4 与领域专家交流 203
7.4.5构建领域模型 205
7.4.6标识聚合 206
7.4.7构建应用程序 207
7.4.8创建储存库 246
7.4.9创建领域服务 248
7.5本章小结 253
第8章“挖掘”自己的业务 255
8.1数据访问层 255
8.1.1构建自己的数据访问层 256
8.1.2对象关系映射 256
8.1.3数据上下文 257
8.1.4实体架构 272
8.1.5 LinqToSQL 与实体架构的对比 287
8.1.6使用NHibernate实现按揭贷款应用程序中的映射 302
8.2本章小结 321
第9章 组织前端 323
9.1被忽视的前端 323
9.2早期的前端模式 324
9.2.1 Java Struts 326
9.2.2 ASPNET 326
9.2.3模型-视图-表示器 329
9.2.4 回到MVC——Rails方式 333
9.3本章小结 336
第10章 模型-视图-表示器 339
10.1 MVP模式——简化版本 339
10.1.1模型 340
10.1.2视图 340
10.1.3表示器 341
10.1.4 MVP按揭贷款计算器——Web示例 341
10.2切换平台——胖客户示例 362
10.3本章小结 366
第11章 模型-视图-控制器模式 369
11.1回归基本要素 369
11.1.1模型 371
11.1.2控制器 371
11.1.3视图 372
11.1.4按揭贷款申请 373
11.1.5模型 375
11.1.6控制器 377
11.1.7视图 379
11.1.8简单仓储 383
11.1.9创建和编辑 388
11.1.10充实模型 403
11.1.11完整的源代码 415
11.2本章小结 416
第12章 组合所有内容 417
12.1退一步海阔天空 417
12.2概念 418
12.2.1可靠性 418
12.2.2灵活性 418
12.2.3关注点分离 418
12.2.4可重用性 418
12.2.5可维护性 418
12.2.6大环境 419
12.3代码 419
12.4模式 420
12.4.1中间件 420
12.4.2持久化 422
12.4.3用户界面 422
12.4.4大环境 423
12.5完整的大环境 424
12.5.1按揭贷款服务 424
12.5.2简单的按揭贷款计算器 425
12.5.3按揭贷款资格审查应用程序 425
12.6最终思考 425
12.7本章小结 426
附录A C#.NET基础知识 427