米里特编著的《ASP.NET设计模式》将向您展示如何在实际的ASP.NET应用程序中发挥设计模式和核心设计原则的威力。本书的目标是向开发者讲解能够帮助其成为更好的程序员的面向对象编程基础、设计模式、原则及方法学。设计模式和原则支持松散耦合、高内聚的代码,而这将提升代码的可读性、灵活性和可维护性。每一章内容关注企业ASP.NET应用程序中的一层,并展示如何利用那些经过实践证明的模式、原则和最佳实践来解决问题并改进代码设计。此外,本书使用一个专业级的、完整的研究案例来讲解如何在实际的网站中运用最佳实践设计模式和原则。
本书是为那些熟悉.NET框架但希望了解如何改进编码方式以及如何运用设计模式、设计原则和最佳实践来提高代码的可维护性和适应性的ASP.NET开发者而写的。
米里特编著的《ASP.NET设计模式》这本独特的书通过强调松散耦合、高内聚的ASPNET Web应用程序架构设计,使得人们对高质量ASP.NET应用程序结构的认识更进一步。每一章内容分别解决企业ASP.NET应用程序中的一个层,同时讲解如何运用经过证明的模式、原则和最佳实践来解决问题、改进代码设计。此外,《ASP.NET设计模式》还使用一个专业级的、从头到尾的完整案例研究来演示如何在实际的网站中实施设计模式和原则的最佳实践。可以将这个案例研究构建的框架作为基础来构建实际的网站、扩展程序并实现具体的ASPNET代码。
第Ⅰ部分 模式与设计原则
第1章 成功应用程序的模式3
1.1 设计模式释义3
1.1.1 起源4
1.1.2 必要性4
1.1.3 有效性4
1.1.4 局限性5
1.2 设计原则5
1.2.1 常见设计原则5
1.2.2 S.O.L.I.D.设计原则6
1.3 Fowler的企业设计模式7
1.3.1 分层7
1.3.2 领域逻辑模式7
1.3.3 对象关系映射8
1.3.4 Web表示模式9
1.3.5 基本模式、行为模式和结构模式9
1.4 其他有名的设计实践10
1.4.1 测试驱动设计10
1.4.2 领域驱动设计10
1.4.3 行为驱动设计10
1.5 小结11
第2章 剖析模式的模式13
2.1 如何阅读设计模式13
2.1.1 GoF模式模板13
2.1.2 简化模板14
2.2 设计模式分组14
2.2.1 创建型14
2.2.2 结构型15
2.2.3 行为型15
2.3 如何选择和运用设计模式16
2.4 快速模式示例17
2.4.1 根据设计原则进行重构19
2.4.2 根据Adapter模式进行重构21
2.4.3 利用企业模式24
2.5 小结25
第Ⅱ部分 剖析ASP.NET应用程序:学习并应用模式
第3章 应用程序分层与关注点分离29
3.1 应用程序体系结构与设计29
3.1.1 反模式:智能UI29
3.1.2 分离关注点35
3.2 小结51
第4章 业务逻辑层:组织53
4.1 理解业务组织模式53
4.1.1 Transaction Script53
4.1.2 Active Record55
4.1.3 Domain Model65
4.1.4 Anemic Domain Model86
4.1.5 领域驱动设计88
4.2 小结91
第5章 业务逻辑层:模式93
5.1 应用设计模式93
5.1.1 Factory Method模式93
5.1.2 Decorator模式97
5.1.3 Template Method模式103
5.1.4 State模式107
5.1.5 Strategy模式113
5.2 应用企业模式117
5.2.1 Specification模式117
5.2.2 Composite模式119
5.2.3 Layer Supertype模式124
5.3 应用设计原则127
5.3.1 依赖倒置原则和依赖注入模式127
5.3.2 接口分离原则133
5.3.3 里氏替换原则137
5.4 小结147
第6章 服务层149
6.1 服务层介绍149
6.1.1 SOA149
6.1.2 SOA的4项信条152
6.1.3 Facade设计模式152
6.2 应用Messaging模式153
6.2.1 Document Message和Request-Response模式154
6.2.2 Reservation模式155
6.2.3 Idempotent模式156
6.3 SOA示例156
6.3.1 领域模型和资源库157
6.3.2 服务层166
6.3.3 客户端代理180
6.3.4 客户端183
6.4 小结187
第7章 数据访问层189
7.1 DAL介绍189
7.2 数据访问策略189
7.2.1 Repository模式190
7.2.2 Data Access Objects模式191
7.3 数据访问模式191
7.3.1 Unit of Work模式191
7.3.2 数据并发控制198
7.3.3 Lazy Loading和Proxy模式201
7.3.4 Identity Map模式206
7.3.5 Query Object模式208
7.4 使用对象关系映射器218
7.4.1 NHibernate219
7.4.2 MS Entity Framework219
7.4.3 ORM代码示例219
7.5 小结280
第8章 表示层283
8.1 反转控制283
8.1.1 Factory Method设计模式283
8.1.2 Service Locator285
8.1.3 IoC容器286
8.1.4 StructureMap286
8.2 Model-View-Presenter290
8.3 Front Controller313
8.3.1 Command模式314
8.3.2 Chain of Responsibility模式336
8.4 Model-View-Controller344
8.4.1 ViewModel模式344
8.4.2 ASP.NET MVC框架345
8.4.3 利用AutoMapper映射ViewModel357
8.4.4 Castle MonoRail362
8.5 Page Controller模式369
8.6 小结370
第9章 用户体验层371
9.1 什么是AJAX371
9.2 使用JavaScript库372
9.3 理解AJAX模式372
9.3.1 Periodic Refresh和Timeout372
9.3.2 Unique URL390
9.3.3 利用JavaScript Template实现数据绑定390
9.3.4 Predictive Fetch408
9.4 小结414
第Ⅲ部分 案例研究:在线电子商务商店
第10章 需求和基础设施417
10.1 Agatha服装店需求417
10.1.1 Product Catalog和Basket截屏418
10.1.2 顾客账号屏幕420
10.1.3 结账屏幕422
10.1.4 缓存和日志423
10.2 架构423
10.3 小结443
第11章 创建商品目录445
11.1 创建产品目录445
11.1.1 Product Catalog模型445
11.1.2 Product Catalog数据表450
11.1.3 Product Catalog资源库451
11.1.4 Product服务465
11.1.5 控制器480
11.1.6 Product Catalog视图490
11.1.7 设置IoC513
11.2 小结516
第12章 实现购物车519
12.1 实现购物车519
12.1.1 Basket领域模型519
12.1.2 创建购物车数据表529
12.1.3 NHibernate映射530
12.1.4 购物车服务533
12.1.5 购物车控制器和购物车视图543
12.2 小结565
第13章 顾客会员567
13.1 顾客会员567
13.1.1 Customer模型568
13.1.2 Customer数据表573
13.1.3 Customer NHibernate映射573
13.1.4 Customer服务576
13.1.5 身份验证服务585
13.1.6 Customer控制器593
13.1.7 Account控制器597
13.1.8 顾客关系视图607
13.1.9 身份验证视图611
13.2 小结617
第14章 订购和支付619
14.1 结账619
14.1.1 Order模型620
14.1.2 Order数据表635
14.1.3 Order NHibernate映射636
14.1.4 Order服务639
14.1.5 利用PalPay进行支付648
14.1.6 Order、Payment与Checkout控制器657
14.1.7 Order和Checkout视图666
14.2 小结676