ASP.NET MVC 5 框架揭秘

出版日期:2014-7-1
ISBN:9787121237814
作者:蒋金楠
页数:656页

作者简介

《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来《ASP.NET MVC 5 框架揭秘》以请求消息在ASP.NET MVC框架内部的流向为主线将相关的知识点串联起来,力求将“黑盒式”的消息处理管道清晰透明地展示在读者面前。相信精读《ASP.NET MVC 5 框架揭秘》的读者一定能够将ASP.NET MVC从接收请求到响应回复的整个流程了然于胸,对包括路由、Controller的激活、Model元数据的解析、Action方法的选择与执行、参数的绑定与验证、过滤器的执行及View的呈现等相关机制具有深刻的理解。
《ASP.NET MVC 5 框架揭秘》以实例演示的方式介绍了很多与ASP.NET MVC相关的最佳实践,同时还提供了一系列实用性的扩展,相信它们一定能够解决你在真实开发过程中遇到的很多问题。《ASP.NET MVC 5 框架揭秘》最后一章提供的案例不仅用于演示实践中的ASP.NET MVC,很多架构设计方面的东西也包含其中。除此之外, 《ASP.NET MVC 5 框架揭秘》在很多章节还从设计的角度对ASP.NET MVC的架构进行了深入分析,所以从某种意义上讲本书可以当成一本架构设计的书来读。
虽然与市面上任何一本相关的书相比,《ASP.NET MVC 5 框架揭秘》走得更远,并更加近距离地触及ASP.NET MVC框架的内核,但是就其内容本身来讲却没有涉及太多“高深莫测”的知识点,所以阅读《ASP.NET MVC 5 框架揭秘》不存在太高的门槛。如果你觉得自己对ASP.NET MVC所知甚少,可以利用《ASP.NET MVC 5 框架揭秘》来系统地学习ASP.NET MVC;如果你觉得自己对ASP.NET MVC足够精通,一定能够在《ASP.NET MVC 5 框架揭秘》中找到相应的“盲点”。

书籍目录

第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
5
1.2.2 Model 2
13
1.2.3 ASP.NET MVC与Model 2
15
1.3 IIS/ASP.NET管道
15
1.3.1 IIS 5.x与ASP.NET
16
1.3.2 IIS 6.0与ASP.NET
17
1.3.3 IIS 7.0与ASP.NET
19
1.3.4 ASP.NET集成
20
1.3.5 ASP.NET管道
22
1.4 ASP.NET MVC是如何运行的
28
1.4.1 建立在“迷你版”ASP.NET MVC上的Web应用
28
1.4.2 路由
31
1.4.3 Controller的激活
37
1.4.4 Action的执行
41
1.4.5 完整的流程
49
第2章 路由
51
2.1 ASP.NET路由
52
2.1.1 请求URL与物理文件的分离
52
2.1.2 实例演示:通过路由实现请求地址与.aspx页面的映射(S201)
53
2.1.3 Route与RouteTable
57
2.1.4 路由注册
65
2.1.5 根据路由规则生成URL
77
2.2 ASP.NET MVC路由
79
2.2.1 路由映射
79
2.2.2 路由注册(S210)
80
2.2.3 缺省URL参数
83
2.2.4 基于Area的路由映射
85
2.2.5 链接和URL的生成
91
2.3 动态HttpHandler映射
98
2.3.1 UrlRoutingModule
99
2.3.2 PageRouteHandler与MvcRouteHandler
100
2.3.3 ASP.NET路由系统扩展
101
2.3.4 实例演示:通过自定义Route对ASP.NET路由系统进行扩展(S214)
102
第3章 Controller的激活
107
3.1 Controller激活系统全景展示
108
3.1.1 Controller
108
3.1.2 ControllerFactory
114
3.1.3 ControllerBuilder
115
3.1.4 Controller的激活与路由
122
3.2 Controller默认激活机制
125
3.2.1 Controller类型的解析
125
3.2.2 Controller类型的缓存
130
3.2.3 Controller的释放和会话状态行为的控制
131
3.3 IoC的应用
133
3.3.1 从Unity来认识IoC
133
3.3.2 Controller与Model的解耦
135
3.3.3 基于IoC的ControllerFactory
137
3.3.4 基于IoC的ControllerActivator
143
3.3.5 基于IoC的DependencyResolver
145
第4章 Model元数据的解析
149
4.1 Model元数据
150
4.1.1 Model元数据层次化结构
150
4.1.2 Model元数据的定制
154
4.1.3 IMetadataAware接口
171
4.2 模板化数据的呈现
176
4.2.1 实例演示:通过模板将布尔值显示为RadioButton(S409)
176
4.2.2 预定义模板
178
4.2.3 针对数据类型的模板
185
4.2.4 数据类型名称 V.S. 模板名称
189
4.2.5 模板的获取与执行
193
4.2.6 实例演示:通过定制Model元数据和自定义模板 实现预定义列表的呈现(S412)197
4.3 Model元数据的提供机制
205
4.3.1 再谈ModelMetadata
206
4.3.2 ModelMetadataProvider
210
4.3.3 Model元数据提供系统的扩展
214
第5章 3个重要的描述对象
217
5.1 ControllerDescriptor
218
5.1.1 ReflectedControllerDescriptor
219
5.1.2 ReflectedAsyncControllerDescriptor
228
5.2 ActionDescriptor
229
5.2.1 AsyncActionDescriptor
230
5.2.2 ReflectedActionDescriptor
231
5.2.3 ReflectedAsyncActionDescriptor
232
5.2.4 TaskAsyncActionDescriptor
233
5.3 ParameterDescriptor
234
第6章 Model的绑定(一)
236
6.1 源数据的提供
237
6.1.1 NameValueCollectionValueProvider
238
6.1.2 DictionaryValueProvider
246
6.1.3 ValueProviderFactory
254
6.1.4 ValueProviderFactories
255
6.2 ModelBinder及其提供策略
259
6.2.1 ModelBinder
259
6.2.2 ModelBinderProvider
265
6.2.3 ModelBinders
268
6.2.4 CustomModelBinderAttribute
271
6.2.5 针对参数的ModelBinder是如何创建的
274
6.3 Model绑定的实施
276
6.3.1 绑定上下文的初始化
277
6.3.2 绑定过程中对ModelState的设置
279
第7章 Model的绑定(二)
283
7.1 绑定简单对象
284
7.1.1 利用ValueProvider绑定简单对象
284
7.1.2 实例演示:利用MyDefaultModelBinder绑定简单类型参数(S701)
286
7.2 绑定复杂对象
289
7.2.1 复杂对象层次化结构
289
7.2.2 递归式绑定
291
7.2.3 实例演示:利用MyDefaultModelBinder绑定复杂类型参数(S702、S703)
294
7.3 绑定集合
297
7.3.1 针对同名数据项的集合绑定
297
7.3.2 针对索引的集合绑定
302
7.4 绑定字典
311
7.4.1 字典是一个复杂类型的集合
311
7.4.2 针对字典类型的Model绑定策略
312
7.4.3 实例演示:利用MyDefaultModelBinder绑定字典类型参数(S707)
316
第8章 Model的验证(一)
318
8.1 几种参数验证方式
319
8.1.1 ModelError
319
8.1.2 验证消息的呈现
320
8.1.3 手工验证绑定的参数
322
8.1.4 使用ValidationAttribute特性
327
8.1.5 让数据类型实现IValidatableObject接口
330
8.1.6 让数据类型实现IDataErrorInfo接口
332
8.2 ModelValidator及其提供策略
334
8.2.1 ModelValidator与ModelValidatorProvider
334
8.2.2 DataAnnotationsModelValidator
337
8.2.3 ValidatableObjectAdapter
337
8.2.4 DataErrorInfoModelValidator
338
8.2.5 ClientModelValidator
339
8.2.6 CompositeModelValidator
341
8.3 Model验证的实施
345
8.3.1 Model绑定过程中的验证
346
8.3.2 实例演示:模拟Model绑定中的验证(S810)
347
8.3.3 针对“必需”数据成员的验证
351
第9章 Model的验证(二)
354
9.1 ValidationAttribute特性
355
9.1.1 数据是如何被验证的
356
9.1.2 几个常用的ValidationAttribute
358
9.1.3 应用ValidationAttribute特性的唯一性
360
9.2 DataAnnotationsModelValidator及其提供策略
364
9.2.1 “适配”型DataAnnotationsModelValidator
365
9.2.2 DataAnnotationsModelValidatorProvider
368
9.2.3 将ValidationAttribute特性应用到参数上
375
9.2.4 一种Model类型,多种验证规则
382
9.3 客户端验证
389
9.3.1 jQuery验证
390
9.3.2 基于jQuery的Model验证
394
9.3.3 自定义验证
398
第10章 Action方法的执行
402
10.1 异步Action的定义
403
10.1.1 基于线程池的请求处理机制
403
10.1.2 两种异步Action方法的定义
404
10.1.3 AsyncManager
406
10.2 各种同步与异步组件
412
10.2.1 MvcHandler
412
10.2.2 Controller
413
10.2.3 ActionInvoker
414
10.2.4 ControllerDescriptor
420
10.2.5 ActionDescriptor
423
10.3 目标方法的执行
430
10.3.1 Action方法并不以“反射”方式执行
430
10.3.2 实例演示:采用针对表达式树执行Action方法(S1010)
432
第11章 View的呈现
437
11.1 ActionResult
438
11.1.1 EmptyResult
438
11.1.2 ContentResult
439
11.1.3 FileResult
446
11.1.4 JavaScriptResult
451
11.1.5 JsonResult
455
11.1.6 HttpStatusCodeResult
457
11.1.7 RedirectResult/RedirectToRouteResult
458
11.2 ViewResult与ViewEngine
461
11.2.1 View引擎中的View
461
11.2.2 ViewEngine
463
11.2.3 ViewResult的执行
465
11.3 Razor引擎
474
11.3.1 View的编译原理
475
11.3.2 WebViewPage与WebViewPage
480
11.3.3 RazorView
485
11.3.4 RazorViewEngine
495
第12章 过滤器
499
12.1 Filter及其提供机制
500
12.1.1 Filter与FilterProvider
500
12.1.2 以特性方式注册过滤器
502
12.1.3 Controller本身就是过滤器
504
12.1.4 过滤器的全局注册
504
12.1.5 实例演示:验证Filter的提供机制和执行顺序(S1201,S1202,S1203)
506
12.2 AuthenticationFilter
511
12.2.1 AuthenticationFilter的执行流程
512
12.2.2 实例演示:通过自定义AuthenticationFilter实现Basic认证(S1204)
513
12.3 AuthorizationFilter
518
12.3.1 AuthorizeAttribute
518
12.3.2 RequireHttpsAttribute
520
12.3.3 ValidateInputAttribute
520
12.3.4 ValidateAntiForgeryTokenAttribute
523
12.3.5 ChildActionOnlyAttribute
527
12.4 ActionFilter
528
12.4.1 ActionFilter的执行流程
529
12.4.2 ActionFilter对ActionResult的设置
530
12.4.3 异常处理
532
12.5 ExceptionFilter
534
12.5.1 HandleErrorAttribute
535
12.5.2 实例演示:利用自定义的ExceptionFilter集成Enterprise Library进行异常处理(S1207, S1208, S1209)
537
12.6 ResultFilter与OverrideFilter
551
12.6.1 ResultFilter的执行流程
552
12.6.2 屏蔽外围过滤器
553
第13章 特性路由
556
13.1 特性路由注册
557
13.1.1 RouteInfoProvider特性
557
13.1.2 基本路由映射
558
13.1.3 让路由模板能够尽可能反映资源的层次结构
559
13.1.4 为路由变量设置约束
560
13.1.5 缺省路由变量
561
13.1.6 设置模板前缀
562
13.1.7 设置Area名称
563
13.2 约束表达式的解析
564
13.2.1 RangeRouteConstraint
565
13.2.2 InlineConstraintResolver
566
13.2.3 自定义约束
570
13.3 Route的创建
574
13.3.1 特性路由注册的Route对象
574
13.3.2 Route的生成机制
579
13.3.3 Controller的激活与Action方法的选择
579
第14章 案例实践
581
14.1 功能简介
582
14.1.1 商品列表的呈现
582
14.1.2 订购商品
584
14.1.3 登录与错误页面
585
14.2 设计概述
586
14.2.1 Controller-Service-Repository
586
14.2.2 IoC的应用
591
14.2.3 AOP的应用
594
14.2.4 异常处理
601
14.3 编程实现
602
14.3.1 数据表的创建
603
14.3.2 Repository
604
14.3.3 Service
609
14.3.4 路由注册和布局
612
14.3.5 ProductController
616
14.3.6 OrderController
624
14.3.7 AccountController
630
附录A 实例列表
635

内容概要

蒋金楠,网名Artech,高级软件顾问。微软6任MVP(Solutions Architecture、ConnectedSystem与Microsoft Integration)。著《WCF全面解析》(上、下册)《ASP.NET MVC4框架揭秘》《ASP.NET Web API 2技术揭秘》等.NET领域畅销名著。对.NET Framework、C#、ASP.NET、SQLServer、设计模式、软件架构,以及主流的开源框架有着深入的研究。尤其是在WCF技术方面,属国内较早接触WCF的人之一,同时对.NETRemoting、MSMQ通信技术有深入的理解。博客园推荐博客(目前排名第一),2012年度51CTOIT博客大赛10佳。


 ASP.NET MVC 5 框架揭秘下载



发布书评

 
 


精彩短评 (总计1条)

  •     读了大部分,一些章节没有细读。觉得这书不能叫书,应该叫 MVC 源码说明文档。不是说作者技术差,而是真心不会写作。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024