内容简介
第Ⅰ部分ASP.NET运行时环境
第1章 当今的ASP.NET Web窗体
1.1 ASP.NET Web窗体的“启蒙运动”
1.1.1 原始积累
1.1.2 ASP.NET的弱项
1.1.3 框架与开发者
1.2 AJAX革命
1.2.1 传统ASP.NET的蜕变
1.2.2 AJAX是Web内建的功能
1.3 ASP.NET的未来
1.3.1 ASP.NET MVC
1.3.2 ASP.NET网页
1.4 小结
第2章 ASP.NET与IIS
2.1 Web服务器环境
2.1.1 ASP.NET与IIS的演进
2.1.2 HTTP请求在IIS中历经的过程
2.1.3 IIS 7.5 的新特性
2.2 ASP.NET应用程序的部署
2.2.1 网站项目的XCopy部署
2.2.2 文件和设置的打包
2.2.3 网站预编译
2.2.4 ASP.NET应用程序的配置
2.2.5 应用程序热身与预加载
2.3 小结
第3章 ASP.NET的配置
3.1 ASP.NET配置层次结构
3.1.1 配置文件
3.1.2 〈location〉节
3.1.3 〈system.web〉节
3.1.4 其他顶层元素
3.2 配置数据的管理
3.2.1 使用配置API
3.2.2 配置节的加密
3.3 小结
第4章 HTTP处理程序、模块与路由
4.1 HTTP处理程序的编写
4.1.1 IHttpHandler接口
4.1.2 HTTP处理程序示例——图片查看器
4.1.3 处理图片更为高效的方式
4.1.4 HTTP处理程序高级编程
4.2 HTTP模块的编写
4.2.1 IHttpModule接口
4.2.2 自定义HTTP模块
4.2.3 ASP.NET内建的HTTP模块
4.3 URL路由
4.3.1 URL路由引擎
4.3.2 针对Web窗体的路由
4.4 小结
第Ⅱ部分ASP.NET页面和服务器控件
第5章 剖析ASP.N ET页面
5.1 调用页面
5.1.1 运行机制
5.1.2 处理请求
5.1.3 页面的处理指令
5.2 Page类
5.2.1 Page类的属性
5.2.2 Page类的方法
5.2.3 Page类的事件
5.2.4 事件模型
5.2.5 异步页面
5.3 页面生命周期
5.3.1 页面启动
5.3.2 处理回传
5.3.3 页面初始化
5.4 小结
第6章 ASP.NET核心服务器控件
6.1 ASP.NET服务器控件的基本属性
6.1.1 Control类的属性
6.1.2 Control类的方法
6.1.3 Control类的事件
6.1.4 其他特性
6.2 HTML控件
6.2.1 HTML控件的共性
6.2.2 HTML容器控件
6.2.3 HTML输入控件
6.2.4 HtmlImage控件
6.3 Web控件
6.3.1 Web控件概述
6.3.2 核心Web控件
6.3.3 其他Web控件
6.4 小结
第7章 使用页面
7.1 ASP.NET页面的错误处理
7.1.1 异常处理的基础
7.1.2 页面错误处理的基础
7.1.3 将错误映射到页面
7.1.4 错误报告
7.2 页面个性化
7.2.1 创建用户配置文件
7.2.2 页面交互
7.2.3 配置文件提供程序
7.3 页面本地化
7.3.1 资源本地化
7.3.2 资源和区域设置
7.4 添加页面资源
7.4.1 采用脚本
7.4.2 采用级联样式表和图片
7.5 小结
第8章 网页的构成及可用性
8.1 网页构成一览表
8.1.1 母版页
8.1.2 编写内容页
8.1.3 处理母版页和内容页
8.1.4 编写母版页
8.1.5 设计ASP.NET页面
8.2 网页可用性一览表
8.2.1 跨浏览器呈现
8.2.2 搜索引擎优化
8.2.3 站点导航
8.2.4 配置站点地图
8.2.5 测试网页
8.3 小结
第9章 ASP.NET输入窗体
9.1 窗体程序设计
9.1.1 HtmlForm类
9.1.2 多窗体
9.1.3 跨页面提交
9.2 验证控件
9.2.1 验证控件概述
9.2.2 控件库
9.2.3 特殊功能
9.3 使用向导
9.3.1 Wizard控件的概述
9.3.2 在向导中添加步骤
9.3.3 通过向导导航
9.4 小结
第10章 数据绑定
10.1 数据绑定模型的基础
10.1.1 合适的数据源
10.1.2 数据绑定属性
10.2 数据绑定控件
10.2.1 列表控件
10.2.2 迭代控件
10.2.3 视图控件
10.3 数据绑定表达式
10.3.1 简单的数据绑定
10.3.2 DataBinder类
10.4 管理数据表格
10.4.1 GridView的对象模型
10.4.2 绑定数据到网格
10.4.3 使用GridView
10.5 数据源组件
10.5.1 数据源控件的内部结构
10.5.2 ObjectDataSource控件
10.6 小结
第11章 ListView控件
11.1 ListView控件
11.1.1 ListView对象模型
11.1.2 定义列表布局
11.1.3 创建表格式布局
11.1.4 创建流式布局
11.1.5 创建平铺布局
11.1.6 为列表设定样式
11.2 使用ListView控件
11.2.1 就地编辑
11.2.2 进行更新
11.2.3 插入新的数据项
11.2.4 选择项目
11.2.5 项目列表分页
11.3 小结
第12章 自定义控件
12.1 扩展现有控件
12.1.1 选择基类
12.1.2 更丰富的HyperLink控件
12.2 从零开始生成控件
12.2.1 基类和接口
12.2.2 选择显示样式
12.2.3 SimpleGaugeBar控件
12.2.4 显示SimpleGaugeBar控件
12.3 生成数据绑定控件
12.3.1 主要功能
12.3.2 GaugeBar控件
12.4 生成组合模板控件
12.4.1 组合数据绑定控件的通性
12.4.2 BarChart控件
12.4.3 添加模板支持
12.5 小结
第Ⅲ部分 应用程序的设计
第13章 软件设计原则
13.1 “大泥球”现象
13.1.1 产生的原因
13.1.2 不良征兆
13.2 通用软件原则
13.2.1 内聚性与耦合性
13.2.2 关注点分离
13.3 SOLID原则
13.3.1 单一职责原则
13.3.2 开闭原则
13.3.3 Liskov替换原则
13.3.4 接口分离原则
13.3.5 依赖倒置原则
13.4 依赖注入工具
13.4.1 Managed Extensibi Framework简介
13.4.2 Unity简介
13.5 小结
第14章 应用程序的层次
14.1 多层架构
14.1.1 总体设计
14.1.2 设计方法
14.2 业务逻辑层
14.2.1 业务逻辑层的设计模式
14.2.2 应用程序逻辑
14.3 数据访问层
14.3.1 数据访问层的实现
14.3.2 为数据访问层提供接口
14.3.3 对象/关系映射工具
14.3.4 传统数据库的超越
14.4 小结
第15章 模型-视图-表示器(MVP)模式
15.1 表示层的模式
15.1.1 MVC模式
15.1.2 MVP模式
15.1.3 MVVM模式
15.2 MVP模式的实现
15.2.1 视图的抽象
15.2.2 表示器的创建
15.2.3 导航
15.3 Web窗体应用MVP模式后的可测试性
15.3.1 可测试代码的编写
15.3.2 表示器类的测试
15.4 小结
第Ⅳ部分ASP.NET的基础架构
第16章 HTTP请求上下文
16.1 应用程序的初始化
16.1.1 HttpApplication类的属性
16.1.2 应用程序模块
16.1.3 HttpApplication类的方法
16.1.4 HttpApplication类的事件
16.2 global.asax文件
16.2.1 global.asax的编译
16.2.2 global.asax文件的语法
16.3 HttpContext类
16.3.1 HttpContext类的属性
16.3.2 HttpContext类的方法
16.4 Server对象
16.4.1 HttpServerUtility类的属性
16.4.2 HttpServerUtility类的方法
16.5 HttpResponse对象
16.5.1 HttpResponse类的属性
16.5.2 HttpResponse类的方法
16.6 HttpRequest对象
16.6.1 HttpRequest类的属性
16.6.2 HttpRequest类的方法
16.7 小结
第17章 ASP.NET状态管理
17.1 应用程序状态
17.1.1 HttpApplicationState类的属性
17.1.2 HttpApplicationState类的方法
17.1.3 状态同步
17.1.4 应用程序状态的权衡
17.2 会话的状态
17.2.1 会话状态HTTP模块
17.2.2 HttpSessionState类的属性
17.2.3 HttpSessionState类的方法
17.3 使用会话状态
17.3.1 标识会话
17.3.2 会话的生存期
17.3.3 将会话数据保存到远程服务器
17.3.4 将会话状态保存到SQL Server
17.4 自定义会话状态管理
17.4.1 构建自定义会话状态提供程序
17.4.2 生成自定义会话ID
17.5 页面的视图状态
17.5.1 StateBag类
17.5.2 视图状态的常见问题
17.5.3 对视图状态进行编程
17.6 小结
第18章 ASP.NET缓存
18.1 缓存应用程序数据
18.1.1 Cache类
18.1.2 使用ASP.NET缓存
18.1.3 实际问题
18.1.4 设计自定义依赖项
18.1.5 XML数据的缓存依赖项
18.1.6 SQL Server缓存依赖项
18.2 分布式缓存
18.2.1 分布式缓存的功能
18.2.2 AppFabric缓存服务
18.2.3 其他解决方案
18.3 缓存ASP.NET页面
18.3.1 ASP.NET和浏览器缓存
18.3.2 使ASP.NET页面可缓存
18.3.3 HttpCachePolicy类
18.3.4 缓存页面的多个版本
18.3.5 缓存ASP.NET页面的部分内容
18.3.6 高级缓存功能
18.4 小结
第19章 ASP.NET安全性
19.1 威胁来自于哪里
19.2 ASP.NET的安全上下文
19.2.1 谁在真正运行我的ASP.NET应用程序
19.2.2 更改ASP.NET进程的身份
19.2.3 ASP.NET应用程序的信任级别
19.2.4.ASP.NET身份验证方法
19.3 使用窗体身份验证
19.3.1 窗体身份验证控制流
19.3.2 FormsAuthentication类
19.3.3 窗体身份验证的配置
19.3.4 高级窗体身份验证功能
19.4 成员资格和角色管理API
19.4.1 Membership类
19.4.2 成员资格提供程序
19.4.3 管理角色
19.5 基于声明的身份标识概述
19.5.1 基于声明的身份标识
19.5.2 在ASP.NET应用程序中使用声明
19.6 与安全相关的控件
19.6.1 Login控件
19.6.2 LoginName控件
19.6.3 LoginStatus控件
19.6.4 LoginView控件
19.6.5 PasswordRecovery控件
19.6.6 ChangePassword控件
19.6.7 CreateUserWizard控件
19.7 小结
第Ⅴ部分 客户端编程
第20章 AJAX编程
20.1 AJAX基础结构
20.1.1 AJAX的隐藏引擎
20.1.2 JavsScript和AJAX
20.2 ASP.NET中的部分呈现
20.2.1 ScriptManager控件
20.2.2 ScriptManagerProxy控件
20.2.3 UpdatePanel控件
20.3 关于部分呈现的注意事项
20.3.1 配置条件刷新
20.3.2 给用户反馈
20.3.3 部分呈现的来龙去脉
20.4 REST和AJAX
20.4.1 脚本化服务
20.4.2 JSON有效载荷
20.4.3 JavaScript客户端代码
20.5 小结
第21章 jQuery编程
21.1 对客户端的强大作用
21.1.1 在浏览器内编程
21.1.2 jQuery的要点
21.2 使用jQuery
21.2.1 检测DOM是否就绪
21.2.2 包装集
21.2.3 在包装集上进行操作
21.2.4 操作DOM
21.2.5 jQuery缓存
21.2.6 AJAX功能
21.2.7 跨域调用
21.3 小结