内容简介
蒋金楠,网名Artech,高级软件顾问。微软6任MVP(Solutions Architecture、Connected System与Microsoft Integration)。著《WCF全面解析》(上、下册)、《ASP.NET MVC 4框架揭秘》等。对.NET Framework、C#、ASP.NET、SQL Server、设计模式、软件架构,以及主流的开源框架有着深入的研究。尤其是在WCF技术方面,属国内较早接触WCF的人之一,同时对.NET Remoting、MSMQ通信技术有深入的理解。博客园推荐博客(目前排名第一),2012年度51CTO IT博客大赛10佳。
作品目录
第1章 ASP.NET + MVC 1
1.1 传统MVC模式 2
1.1.1 自治视图 2
1.1.2 什么是MVC模式 3
1.2 MVC的变体 4
1.2.1 MVP 4
1.2.2 Model 2 12
1.2.3 ASP.NETMVC与Model 2 13
1.3 IIS/ASP.NET管道 14
1.3.1 IIS 5.x与ASP.NET 14
1.3.2 IIS 6.0与ASP.NET 15
1.3.3 IIS 7.0与ASP.NET 17
1.3.4 ASP.NET管道 20
1.4 ASP.NET MVC是如何运行的 25
1.4.1 建立在“迷你版”ASP.NET MVC上的Web应用 25
1.4.2 URL路由 27
1.4.3 Controller的激活 31
1.4.4 Action的执行 35
本章小结 39
第2章 URL路由 41
2.1 ASP.NET路由系统 42
2.1.1 请求URL与物理文件的分离 42
2.1.2 实例演示:通过URL路由实现请求地址与.aspx页面的映射(S201) 43
2.1.3 Route与RouteTable 46
2.1.4 路由映射 52
2.1.5 根据路由规则生成URL 59
2.2 ASP.NET MVC扩展 61
2.2.1 路由映射 61
2.2.2 实例演示:注册路由映射与查看路由信息(S208) 62
2.2.3 缺省URL参数 65
2.2.4 基于Area的路由映射 67
2.2.5 链接和URL的生成 71
2.3 动态HttpHandler映射 78
2.3.1 UrlRoutingModule 78
2.3.2 PageRouteHandler与MvcRouteHandler 79
2.3.3 ASP.NET路由系统扩展 80
本章小结 85
第3章 Controller的激活 86
3.1 总体设计 87
3.1.1 Controller 87
3.1.2 ControllerFactory 92
3.1.3 ControllerBuilder 93
3.1.4 Controller的激活与URL路由 99
3.2 默认实现 101
3.2.1 Controller类型的解析 102
3.2.2 Controller类型的缓存 105
3.2.3 Controller的释放和会话状态行为的控制 106
3.3 IoC的应用 108
3.3.1 从Unity来认识IoC 108
3.3.2 Controller与Model的分离 110
3.3.3 基于IoC的ControllerFactory 111
3.3.4 基于IoC的ControllerActivator 117
3.3.5 基于IoC的DependencyResolver 119
本章小结 122
第4章 Model元数据的解析 123
4.1 Model元数据及其定制 124
4.1.1 Model元数据层次化结构 124
4.1.2 基本Model元数据信息 125
4.1.3 Model元数据的定制 128
4.1.4 IMetadataAware接口 142
4.2 Model元数据与Model模板 146
4.2.1 实例演示:通过模板将布尔值显示为RadioButton(S409) 147
4.2.2 预定义模板 148
4.2.3 DataTypeName与模板名称 157
4.2.4 模板的获取与执行 160
4.2.5 实例演示:通过定制Model元数据和自定义模板 实现预定义列表的呈现
(S412) 164
4.3 Model元数据的提供机制 172
4.3.1 再谈ModelMetadata 172
4.3.2 ModelMetadataProvider 176
4.3.3 Model元数据提供系统的扩展 180
本章小结 182
第5章 Model的绑定 183
5.1 ControllerDescriptor、ActionDescriptor与ParameterDescriptor 184
5.1.1 ControllerDescriptor 184
5.1.2 ActionDescriptor 189
5.1.3 ParameterDescriptor 193
5.2 ValueProvider 196
5.2.1 NameValueCollectionValueProvider 197
5.2.2 DictionaryValueProvider 203
5.2.3 ValueProviderFactory 211
5.2.4 ValueProviderFactories 211
5.3 ModelBinder 215
5.3.1 ModelBinder与ModelBinderProvider 215
5.3.2 ModelState与Model绑定 223
5.3.3 ModelBindingContext的创建 227
5.4 Model绑定的默认实现 228
5.4.1 简单类型 229
5.4.2 复杂类型 232
5.4.3 数组 238
5.4.4 集合 246
5.4.5 字典 248
本章小结 252
第6章 Model的验证 254
6.1 ModelValidator与ModelValidatorProvider 255
6.1.1 ModelValidator 255
6.1.2 ModelValidatorProvider 258
6.1.3 ModelValidatorProviders 264
6.2 Model绑定与验证 269
6.2.1 ModelState 269
6.2.2 验证消息的呈现 272
6.2.3 Model绑定中的验证 278
6.3 基于数据注解特性的Model验证 283
6.3.1 ValidationAttribute特性 283
6.3.2 DataAnnotationsModelValidator 290
6.3.3 DataAnnotationsModelValidatorProvider 292
6.3.4 将ValidationAttribute应用到参数上 295
6.3.5 一种Model类型,多种验证规则 300
6.4 客户端验证 307
6.4.1 jQuery验证 307
6.4.2 基于jQuery的Model验证 311
6.4.3 自定义验证 315
本章小结 318
第7章 Action的执行 320
7.1 异步Action的定义 321
7.1.1 基于线程池的请求处理机制 321
7.1.2 两种异步Action方法的定义 322
7.1.3 AsyncManager 324
7.2 Action方法的执行 330
7.2.1 MvcHandler对请求的处理 330
7.2.2 Controller的执行 330
7.2.3 ActionInvoker的执行 331
7.2.4 ControllerDescriptor的同步与异步 336
7.2.5 ActionDescriptor的执行 339
7.3 筛选器的执行 345
7.3.1 Filter及其提供机制 345
7.3.2 AuthorizationFilter 355
7.3.3 ActionFilter 365
7.3.4 ExceptionFilter 371
7.3.5 实例演示:集成EntLib实现自动化异常处理(S713, S714, S715) 373
7.3.6 ResultFilter 387
本章小结 388
第8章 View的呈现 390
8.1 ActionResult 391
8.1.1 EmptyResult 391
8.1.2 ContentResult 392
8.1.3 FileResult 398
8.1.4 JavaScriptResult 402
8.1.5 JsonResult 405
8.1.6 HttpStatusCodeResult 408
8.1.7 RedirectResult/RedirectToRouteResult 409
8.2 ViewResult与ViewEngine 411
8.2.1 View引擎中的View 411
8.2.2 ViewEngine 413
8.2.3 ViewResult的执行 415
8.3 Razor引擎 423
8.3.1 View的编译原理 423
8.3.2 WebViewPage与WebViewPage
427
8.3.3 RazorView 432
8.3.4 RazorViewEngine 441
本章小结 444
第9章 ASP.NET Web API 445
9.1 Web、REST与Web API 446
9.1.1 Web如此简单 446
9.1.2 REST是什么 447
9.1.3 ASP.NET Web API 450
9.2 服务端管道 458
9.2.1 ASP.NET Web API管道式设计 459
9.2.2 HttpMessageHandler 461
9.2.3 HttpServer 464
9.2.4 实例演示:自定义HttpMessageHandler实现HTTP方法重写(S903) 469
9.3 HttpControllerDispatcher 471
9.3.1 HttpController的激活 472
9.3.2 HttpController的执行 485
9.3.3 Action的选择 486
9.3.4 Model元数据的解析 492
9.3.5 Action参数绑定 495
9.3.6 Model验证 508
9.3.7 Action的执行与结果的响应 512
9.4 Web API的调用和自我寄宿 516
9.4.1 HttpClient 516
9.4.2 HttpSelfHostServer 521
本章小结 525
第10章 案例实践 527
10.1 功能性简介 528
10.1.1 商品列表的呈现 528
10.1.2 定购商品 530
10.1.3 登录与错误页面 531
10.2 设计概述 532
10.2.1 Controller-Service-Repository 532
10.2.2 IoC的应用 536
10.2.3 AOP的应用 539
10.2.4 异常处理 545
10.3 编程实现 546
10.3.1 数据表的创建 546
10.3.2 Repository 548
10.3.3 Service 552
10.3.4 路由注册和布局 555
10.3.5 ProductController 558
10.3.6 OrderController 565
10.3.7 AccountController 571
本章小结 574
附录A 实例列表 575
· · · · · ·作者简介
蒋金楠,网名Artech,高级软件顾问。微软6任MVP(Solutions Architecture、Connected System与Microsoft Integration)。著《WCF全面解析》(上、下册)、《ASP.NET MVC 4框架揭秘》等。对.NET Framework、C#、ASP.NET、SQL Server、设计模式、软件架构,以及主流的开源框架有着深入的研究。尤其是在WCF技术方面,属国内较早接触WCF的人之一,同时对.NET Remoting、MSMQ通信技术有深入的理解。博客园推荐博客(目前排名第一),2012年度51CTO IT博客大赛10佳。