标题：ASP.NET本质论
基本信息
  　　作者： 郝冠军
出版社：机械工业出版社 
ISBN：9787111332855
上架时间：2011-2-15
出版日期：2011 年3月
开本：16开
页码：1
版次：1-1
作者简介
郝冠军，资深微软技术专家和培训讲师。从事软件开发工作十余年，精通.NET和ASP. NET开发。他还是博客园和CSDN等社区的活跃技术专家，经常帮助大家解答各种疑难问题。此外，作为微软社区精英的领导团队成员，他还负责微软社区精英的招募工作。现任思胜.net培训高级讲师！  
内容简介
如果你只是想系统地学习如何简单地利用asp. net快速地进行开发，《asp. net本质论》也许不是你想要的；如果你不满足于只是会利用asp. net强大的控件功能完成一些常规应用的开发，而是想深入探究asp. net的本质和精髓，实现从一个控件使用人员向系统开发人员的过渡，那么这本书是你不能错过的，也是你目前的唯一选择。
《asp. net本质论》以asp. net应用中的请求处理过程为主线，对每一步处理所涉及的技术和原理进行了深入的剖析，同时列举了开发过程中在各处理环节可能会遇到的经典疑难问题进行了分析并给出了解决方案。
第1~4章是 asp. net 的核心部分，细致地剖析了 asp. net中的请求处理机制、asp. net 中的对象与 http 之间的映射关系、应用程序处理管道的处理过程、处理程序的处理机制，以及多线程技术在asp. net中的应用。第5~8章是经典的webform部分，重点讲解了控件的原理与页面的生成机制，包括流与控件的关系、控件与页面的关系、数据绑定控件与模板的关系，以及 asp. net 中的各种状态管理技术。第9章分析了asp. net mvc的处理过程，以及asp .net mvc应用与经典的 asp .net应用之间的关系。第10章讨论了 asp. net 与 iis 服务器之间的关系，并分别针对不同版本的iis分析了其处理过程。第11章对 asp. net 应用中的用户问题进行了分析，并就各种常见问题给出了解决方案。
目录
前言 
第1章　网站应用程序 /1 
1.1　web应用程序的简单回顾 /2 
1.1.1　资源的地址—通用资源标识符 /2 
1.1.2　找到主机 /3 
1.1.3　http协议 /4 
1.2　最简单的 web 服务器 /6 
1.2.1　网络插座socket /6 
1.2.2　基于 tcplistener 的 web 服务器 /10 
1.2.3　基于 httplistener 的 web 服务器 /11 
1.3　进入 asp .net /13 
1.3.1　web 应用程序域 /13 
1.3.2　不使用gac 和bin 加载web 应用程序域 /14 
1.3.3　默默无闻的工作者对象 /16 
1.3.4　web 应用程序的运行时 /18 
1.4　对象化的http /19 
1.4.1　请求参数的对象类型 httprequest /19 
1.4.2　处理回应的对象类型 httpresponse /21 
1.4.3　辅助的常用工具类 httpserverutility /23 
1.4.4　编码与解码 /24 
.1.4.5　浏览器类型 /26 
1.5　创建自定义的 asp .net 服务器 /28 
1.5.1　asp .net web 服务器 /28 
1.5.2　监听程序 /28 
1.5.3　部署程序集 /29 
1.5.4　各种各样的cassini /30 
1.6　本章小结 /30 
第2章　应用程序对象 /31 
2.1　请求的处理参数—上下文对象httpcontext /32 
2.1.1　常用成员 /32 
2.1.2　底层方法 /33 
2.2　应用程序对象 httpapplication /33 
2.2.1　处理管道 /34 
2.2.2　httpapplication 的处理管道 /38 
2.2.3　处理过程的简单介绍 /38 
2.2.4　httpcontext状态管理 /40 
2.3　处理 httpapplication 的事件 /40 
2.3.1　通过 ihttpmodule 创建 httpapplication 的事件处理程序 /40 
2.3.2　注册 httpmodule /41 
2.3.3　不使用配置文件注册 httpmodule /42 
2.3.4　常见的 httpmodule /44 
2.3.5　httpmodule的事件 /46 
2.3.6　通过 global.asax 创建 httpapplication 的事件处理程序 /46 
2.3.7　global.asax 中 httpapplication 事件的自动注册 /48 
2.3.8　特殊的httpapplication 事件处理 /48 
2.4　两个特殊的事件 /51 
2.5　大文件上传问题 /51 
2.5.1　文件上传的规范 /51 
2.5.2　asp .net 中的文件上传 /53 
2.5.3　文件上传的解决方案 /54 
2.5.4　通过httpmodule 接管请求参数 /54 
2.5.5　自定义的请求参数对象 /58 
2.5.6　读取上传数据的接口和实现 /62 
2.5.7　读取上传数据流 /65 
2.5.8　注册自定义的上传管理 /76 
2.5.9　使用自定义的上传管理 /77 
2.6　各种各样的文件上传 /78 
2.6.1　无刷新的上传： jquery form /78 
2.6.2　基于客户端技术的上传进度：swfupload /79 
2.7　本章小结 /79 
第3章　http请求处理程序/80 
3.1　处理程序 /81 
3.1.1　处理程序与 httpapplication 的关系 /81 
3.1.2　处理程序接口 ihttphandler 和 ihttpasynchandler /81 
3.1.3　在处理程序中使用会话 /82 
3.1.4　处理程序工厂 /83 
3.1.5　注册处理程序 /83 
3.1.6　使用处理程序生成验证码 /84 
3.2　一般处理程序 /86 
3.2.1　一般处理程序工厂 /87 
3.2.2　使用一般处理程序的场合 /87 
3.2.3　使用一般处理程序生成验证码图片 /87 
3.2.4　使用一般处理程序生成 json /87 
3.3　页面处理程序 /91 
3.3.1　页面处理程序工厂 /91 
3.3.2　创建页面处理程序 /92 
3.3.3　生成的代码 /93 
3.3.4　使用页面处理程序 /93 
3.4　web 服务处理程序 /94 
3.4.1　web 服务处理程序工厂 /94 
3.4.2　使用 web 服务处理程序 /95 
3.4.3　web 服务的常用标签 /96 
3.4.4　派生自 system.web.services.webservice 类的意义 /98 
3.5　mvc 处理程序 /98 
3.5.1　mvc 的路由接口 iroutehandler /99 
3.5.2　自定义的 iroutehandler /100 
3.5.3　注册路由处理程序 /101 
3.5.4　获取控制器的工厂接口 icontrollerfactory /102 
3.5.5　mvc 请求的处理过程 /102 
3.6　资源处理程序 /103 
3.6.1　资源的处理程序配置 /103 
3.6.2　定义嵌入的资源 /103 
3.6.3　获取资源的地址 /104 
3.6.4　使用嵌入的资源 /104 
3.7　禁止的处理程序 /105 
3.7.1　配置禁止访问的资源 /105 
3.7.2　禁止访问 excel /106 
3.8　虚拟路径提供器 /106 
3.8.1　定义虚拟路径提供器 /106 
3.8.2　注册虚拟路径提供器 /107 
3.8.3　压缩文件中的网站 /109 
3.8.4　sharpziplib /114 
3.9　本章小结 /115 
第4章　asp .net中的线程与异步 /116 
4.1　线程基础 /117 
4.1.1　线程 /117 
4.1.2　自定义线程 /118 
4.1.3　前台线程和后台线程 /119 
4.1.4　工作者线程和 i /o 线程 /119 
4.1.5　线程池 /120 
4.2　.net 中线程处理 /121 
4.2.1　线程的创建与启动 /121 
4.2.2　线程的状态 /123 
4.2.3　线程的执行上下文 /124 
4.2.4　异步编程模式apm /125 
4.2.5　基于事件的异步编程模式 epm /128 
4.2.6　异步线程的状态与同步问题 /129 
4.2.7　处理管道中的异步问题 /133 
4.3　线程池 /137 
4.3.1　线程池的工作原理 /137 
4.3.2　将工作者线程加入线程池 /138 
4.3.3　将i /o 线程加入线程池 /138 
4.4　httpapplication 中的异步线程 /139 
4.4.1　asp .net 中的线程池设置 /139 
4.4.2　异步步骤中的异步点 /141 
4.4.3　启动和完成异步步骤 /142 
4.5　异步处理程序 /142 
4.5.1　异步处理程序接口 /143 
4.5.2　在处理程序中异步调用 web 服务 /143 
4.6　异步页面 /144 
4.6.1　页面异步任务的启动和完成 /144 
4.6.2　异步页面任务 /145 
4.6.3　异步页面中访问 web 服务三种方式 /146 
4.6.4　实例—查询 qq 在线状态 /148 
4.7　本章小结 /151 
第5章　页面即对象 /152 
5.1　流动的网页 /153 
5.1.1　字节流 /154 
5.1.2　字符编码 /155 
5.1.3　字符流 /156 
5.1.4　回应对象中的流 /158 
5.1.5 专门输出 html 的字符流 /158 
5.2　控件—页面对象的基石 /160 
5.2.1　控件类 /160 
5.2.2　render和rendercontrol /161 
5.2.3　控件基类 /161 
5.2.4　组合模式 composite /163 
5.2.5　id 是一个问题 /165 
5.3　形形色色的控件 /171 
5.3.1　html 控件 /172 
5.3.2　web 控件 /172 
5.3.3　webpart 控件 /174 
5.4　控件实现的常用接口 /175 
5.4.1　生成和回发 /175 
5.4.2　控件的任意属性iattributeaccessor /177 
5.4.3　数据的回发ipostbackdatahandler /177 
5.4.4　回发服务器端事件ipostbackeventhandler /178 
5.5　页面 /178 
5.5.1　页面与模板 /179 
5.5.2　母版页 /184 
5.5.3　页面就是一个处理程序 /185 
5.5.4　页面的事件处理管道 /185 
5.5.5　处理页面的事件 /187 
5.6　生成的过程 /188 
5.6.1　从模板到对象模型—buildprovider /189 
5.6.2　从标记到控件—controlbuilder /191 
5.6.3　进入生成阶段—controladapter /191 
5.6.4　控件适配器—controladapter /192 
5.6.5　web控件适配器—webcontroladapter /193 
5.6.6　页面适配器—pageadapter /193 
5.6.7　使用 adapter 定制表单的action /194 
5.7　自定义的 url 重写 /195 
5.7.1　url 重写的原理 /196 
5.7.2　使用 httpmodule 实现url 重写 /196 
5.7.3　在配置文件中处理重写映射 /199 
5.7.4　无扩展名请求的处理问题 /204 
5.8　本章小结 /205 
第6章　状态 /206 
6.1　基本状态管理 /207 
6.1.1　隐藏域 /207 
6.1.2　cookie /209 
6.1.3　url /213 
6.2　视图状态viewstate /215 
6.2.1　序列化和反序列化 /215 
6.2.2　控制序列化 /217 
6.2.3　base64 /218 
6.2.4　视图状态属性与 istatemanager 接口 /219 
6.2.5　保存和恢复的时间点 /221 
6.2.6　视图状态的序列化器 /223 
6.2.7　使用视图状态实现路径导航 /224 
6.3　控件状态 controlstate /228 
6.4　应用程序状态 application /229 
6.5　会话状态 session /229 
6.5.1　服务器端的 session /230 
6.5.2　客户端的 sessionid /231 
6.5.3　session 保存的位置 /233 
6.5.4　session 的过期问题 /237 
6.5.5　压缩 session 数据 /238 
6.6　httpcontext 状态 /238 
6.7　cache /238 
6.7.1　缓存的原理 /238 
6.7.2　.net 中的缓存管理实现 /239 
6.7.3　基于文件的缓存依赖 /241 
6.7.4　基于sql的缓存依赖 /242 
6.7.5　组合的缓存依赖 /244 
6.7.6　删除所有的缓存项目 /246 
6.7.7　web 服务器端的页面缓存 /247 
6.7.8　页面局部缓存 /249 
6.7.9　自定义的输出缓存提供器 /253 
6.8　memcached /254 
6.8.1　下载和安装 memcached /255 
6.8.2　在 asp .net 中访问 memcached /256 
6.9　统计当前在线用户 /258 
6.9.1　module 的处理 /258 
6.9.2　注册 module /261 
6.9.3　module 的配置参数 /262 
6.9.4　module 的事件处理 /263 
6.10　本章小结 /263 
第7章　模板和数据绑定 /264 
7.1　页面与绑定 /265 
7.1.1　嵌入式代码块和表达式 /265 
7.1.2　绑定表达式 /267 
7.1.3　目标target /269 
7.1.4　容器container /269 
7.1.5　触发绑定事件的方法 databind /270 
7.2　控件内的模板 /271 
7.2.1　基于模板的控件 /271 
7.2.2　控件模板中的 container /272 
7.2.3　databinder /272 
7.2.4　page 中的 eval /273 
7.2.5　在属性中使用绑定表达式 /273 
7.3　repeater控件 /273 
7.3.1　数据的来源 datasource /273 
7.3.2　repeater 的基石—repeateritem /274 
7.3.3　绑定的过程 /275 
7.3.4　绑定中的事件 /276 
7.3.5　绑定的结果：controls 集合和 items 集合 /276 
7.3.6　回发中的 itemcommand 事件 /277 
7.4　高级数据控件 /279 
7.4.1　唯一支持分栏的控件-datalist /279 
7.4.2　gridview /283 
7.4.3　listview 和 datapager /289 
7.5　数据源控件 /291 
7.5.1　反射 /292 
7.5.2　两种数据源 /293 
7.5.3　对象数据源 /297 
7.5.4　业务对象的标签 /298 
7.5.5　页面控件与数据源控件之间的关系 /300 
7.5.6　数据源控件相关的事件点 /303 
7.5.7　基于数据源控件的分页 /304 
7.6　本章小结 /305 
第 8 章　自定义控件 /306 
8.1　自定义控件的继承体系 /307 
8.2　自定义控件涉及的相关类型 /307 
8.3　自定义的带有上传进度的按钮 /308 
8.3.1　控件的工作原理 /308 
8.3.2　选择控件的基类 /309 
8.3.3　自定义的数据类型 /309 
8.3.4　状态的持久化 /310 
8.3.5　控件的属性 /312 
8.3.6　属性转换问题—typeconverter /313 
8.3.7　编辑属性数据 uitypeeditor /320 
8.3.8　保存在 aspx 中 /326 
8.3.9　设计器中的显示效果 /329 
8.3.10　工具栏中控件的图标 /330 
8.3.11　脚本嵌入和使用 /330 
8.3.12　控件的呈现 /332 
8.3.13　使用自定义控件 /334 
8.4　petshop 中的自定义控件 /335 
8.4.1　基类 /335 
8.4.2　表格 /335 
8.4.3　处理当前页码参数 /336 
8.4.4　datasource 属性 /336 
8.4.5　事件 /337 
8.4.6　生成 /338 
8.5　本章小结 /342 
第 9 章　mvc /343 
9.1　asp .net mvc 是表现层的mvc /344 
9.2　在 httpapplication 中的asp .net mvc /344 
9.2.1　创建 routetable /345 
9.2.2　urlroutingmodule事件处理 /347 
9.3　从url进入mvc之门 /348 
9.3.1　有意义的 url /349 
9.3.2　在 iis 6.0 和 iis 7 中的配置 /349 
9.3.3　从url到route /350 
9.3.4　约束 /354 
9.3.5　routing /356 
9.3.6　requestcontext 的前世今生 /357 
9.3.7　在 asp .net mvc 中防盗链 /358 
9.4　控制器 /361 
9.4.1　控制器工厂 /361 
9.4.2　使用自定义的控制器工厂 /362 
9.4.3　为 controller 类传递构造函数的参数 /362 
9.4.4　controller 的继承关系 /364 
9.4.5　controller 中的状态管理 /365 
9.4.6　基于过滤器的扩展 /368 
9.4.7　选择 action /372 
9.5　模型 /373 
9.5.1　绑定 model /374 
9.5.2　简单参数和复杂参数 /374 
9.5.3　模型对象的元数据 /375 
9.5.4　model 的验证 /377 
9.5.5　自定义model 的验证 /379 
9.6　执行 action /380 
9.6.1　各种actionresult /380 
9.6.2　向视图传递数据 /381 
9.7　视图 /382 
9.7.1　视图引擎 /382 
9.7.2　经典视图—viewpage /383 
9.7.3　视图引擎—razor /384 
9.8　本章小结 /384 
第10 章　iis 与 asp .net /385 
10.1　网站 /386 
10.1.1　绑定 /386 
10.1.2　网站应用程序 /388 
10.1.3　虚拟目录 /389 
10.2　通过 isapi 扩展 iis /390 
10.2.1　isapi 扩展 /391 
10.2.2　isapi 过滤器 /392 
10.2.3　clr 是一个 com 组件 /394 
10.2.4　asp .net 中的isapi 扩展和过滤器 /396 
10.2.5　isapi rewrite /396 
10.3　iis 与 asp .net /397 
10.3.1　iis5 与 asp .net /397 
10.3.2　iis6 与 asp .net /398 
10.3.3　iis7 与 asp .net /399 
10.4　创建网站的两种方法 /403 
10.5　asp .net中的加密与解密 /405 
10.5.1　machinekey /405 
10.5.2　加密服务 /407 
10.5.3　配置节的加密和解密 /408 
10.6　本章小结 /410 
第11 章　asp .net中的用户 /411 
11.1　从iis开始 /412 
11.1.1　匿名用户方式 /413 
11.1.2　基本身份验证 /413 
11.1.3　摘要式身份验证 /414 
11.1.4　集成 windows 身份验证 /415 
11.1.5　.net passport 身份验证 /416 
11.2　asp .net中的用户信息 /416 
11.2.1　基于 windows 验证的用户 /416 
11.2.2　基于 forms 验证的用户 /417 
11.2.3　基于 passport 验证的用户 /420 
11.2.4　在 iis7 中使用表单验证 /420 
11.3　.net 中的用户 /421 
11.3.1　用户的标识 iidentity /421 
11.3.2　用户 iprincipal /422 
11.4　网站中的用户 /423 
11.5　成员管理 /423 
11.5.1　用户的基本信息 /424 
11.5.2　成员管理的约定 /425 
11.5.3　基于 sqlserver 的成员管理实现 /426 
11.5.4　自定义的成员管理实现 /427 
11.5.5　辅助工具类 membership /432 
11.6　用户的扩展信息—个性化数据 /433 
11.6.1　个性化数据的约定 /433 
11.6.2　个性化数据的属性 /434 
11.6.3　实现自定义的个性化数据管理 /436 
11.6.4　匿名的个性化数据 /439 
11.6.5　合并匿名用户的个性化数据 /441 
11.6.6　基于 sql server 的个性化数据管理 /442 
11.6.7　管理个性化数据 /444 
11.7　执行程序的用户 /444 
11.7.1　执行网站程序的 windows 用户 /445 
11.7.2　用户模拟的作用 /446 
11.7.3　数据库连接串中的用户 /447 
11.8　本章小结 /449 
附录　自定义配置参数 /450