《精通ASP.NET MVC 3框架(第3版)》([美]Adam Freeman,Steven Standerson)【摘要 书评 试读】

2014 年 4 月 26 日8880

第1部分ASP.NETMVC3简介
第1章设计思路
1.1Web开发简史
1.1.1传统的ASP.NETWebForm
1.1.2ASP.NETWebForm表单的问题在哪里
1.2当今的Web开发
1.2.1Web标准与REST
1.2.2敏捷与测试驱动开发
1.2.3RubyonRails
1.2.4Sinatra
1.2.5Node.js
1.3ASP.NETMVC的主要优势
1.3.1MVC架构
1.3.2可扩展性
1.3.3在HTML及HTTP上的严密控制
1.3.4可测试性
1.3.5强大的路由系统
1.3.6建立在ASP.NET平台的精华之上
1.3.7现代API
1.3.8ASP.NETMVC是开源的
1.4谁该使用ASP.NETMVC
1.4.1与ASP.NETWebForm的比较
1.4.2从WebForm迁移到MVC
1.4.3与RubyonRails的比较
1.4.4与MonoRail的比较
1.5ASP.NETMVC3的新特性
1.6小结

第2章准备工作
2.1准备工作站
2.1.1安装VisualStudio2010
2.1.2安装基本软件
2.1.3安装可选组件
2.1.4MVC框架源代码
2.1.5IISExpress
2.1.6SQLServer2008R2ManagementStudioExpress
2.2准备服务器
2.2.1启用Web服务器角色
2.2.2安装其他组件
2.2.3设置Web部署
2.2.4获取更多信息
2.3小结

第3章第一个MVC应用程序
3.1创建ASP.NETMVC新项目
3.1.1添加第一个控制器
3.1.2理解路由
3.2渲染Web页面
3.2.1创建并渲染一个视图
3.2.2添加动态输出
3.3创建一个简单的数据录入应用程序
3.3.1设置场景
3.3.2设计一个数据模型
3.3.3添加模型类
3.3.4链接动作方法
3.3.5创建动作方法
3.3.6添加一个强类型视图
3.3.7建立表单
3.3.8处理表单
3.3.9使用模型绑定
3.3.10渲染其他视图
3.3.11添加验证
3.3.12高亮无效字段
3.3.13完成示例
3.4小结

第4章MVC模式
4.1MVC简史
4.2理解MVC模式
4.2.1理解域模型
4.2.2MVC的ASP.NET实现
4.2.3MVC与其他模式比较
4.2.4理解“智能UI”模式
4.2.5理解MVC的变异
4.3运用域驱动开发(DDD)
4.3.1模拟一个例子域
4.3.2通用语言
4.3.3聚合与简化
4.3.4定义存储库
4.4建立松耦合组件
4.4.1使用依赖性注入
4.4.2一个MVC专用的依赖性注入示例
4.4.3使用依赖性注入容器
4.5自动测试初步
4.5.1理解单元测试
4.5.2使用测试驱动开发及“红-绿-重构”工作流
4.5.3理解集成测试
4.6小结

第5章基本语言特性
5.1C#基本特性
5.1.1使用自动实现的属性
5.1.2使用对象与集合初始化器
5.1.3使用扩展方法
5.1.4对接口运用扩展方法
5.1.5创建过滤扩展方法
5.1.6使用lambda表达式
5.1.7使用自动类型接口
5.1.8使用匿名类型
5.1.9执行语言集成查询
5.1.10理解延迟LINQ查询
5.1.11反复使用延迟查询
5.2理解Razor语法
5.2.1创建项目
5.2.2考察基本的Razor视图
5.3小结

第6章MVC基本工具
6.1使用Ninject
6.1.1创建项目
6.1.2Ninject入门
6.1.3创建依赖性链
6.1.4指定属性与参数值
6.1.5使用自身绑定
6.1.6绑定到派生类型
6.1.7使用条件绑定
6.2将Ninject运用于APS.NETMVC
6.3VisualStudio的单元测试
6.3.1创建项目
6.3.2创建单元测试
6.3.3运行单元测试(并失败)
6.3.4实现特性
6.4使用Moq
6.4.1将Moq添加到VisualStudio项目
6.4.2用Moq创建模仿
6.4.3使用Moq的单元测试
6.4.4用Moq作校验
6.5小结

第7章SportsStore:一个真实的应用程序
7.1开始
7.1.1创建VisualStudio解决方案和项目
7.1.2添加引用
7.1.3建立DI容器
7.1.4运行应用程序
7.2从域模型开始
7.2.1创建抽象存储库
7.2.2制作模仿存储库
7.3显示产品列表
7.3.1添加控制器
7.3.2添加视图
7.3.3设置默认路由
7.3.4运行应用程序
7.4准备数据库
7.4.1创建数据库
7.4.2定义数据库方案
7.4.3向数据库添加数据
7.4.4创建实体框架上下文
7.4.5创建Product存储库
7.5添加分页
7.5.1显示页面链接
7.5.2改进URL
7.6设置内容样式
7.6.1定义布局中的公用内容
7.6.2添加CSS规则
7.6.3创建分部视图
7.7小结

第8章SportsStore:导航与购物车
8.1添加导航控件
8.1.1过滤产品列表
8.1.2调整URL方案
8.1.3建立分类导航菜单
8.1.4修正页面计数
8.2建立购物车
8.2.1定义购物车实体
8.2.2添加“AddtoCart(加入购物车)”按钮
8.2.3实现购物车控制器
8.2.4显示购物车内容
8.3使用模型绑定
8.4完成购物车
8.4.1删除购物车的条目
8.4.2添加购物车摘要
8.5递交订单
8.5.1扩充域模型
8.5.2添加结算过程
8.5.3实现订单处理器
8.5.4注册接口实现
8.5.5完成购物车控制器
8.5.6显示验证错误
8.5.7显示致谢页面
8.6小结

第9章SportsStore:管理
9.1添加分类管理
9.1.1创建CRUD控制器
9.1.2渲染存储库中的产品
9.1.3创建新的布局
9.1.4实现List视图
9.1.5编辑产品
9.1.6创建新产品
9.1.7删除产品
9.2使管理特性安全
9.2.1建立表单认证
9.2.2运用过滤器进行授权
9.2.3创建认证提供器
9.2.4创建Account控制器
9.2.5创建视图
9.3图像上传
9.3.1扩展数据库
9.3.2增强域模型
9.3.3创建Upload用户界面元素
9.3.4将图像保存到数据库
9.3.5实现GetImage动作方法
9.3.6显示产品图像
9.4小结

第2部分ASP.NETMVC3细节
第10章MVC项目综述
10.1使用VisualStudio的MVC项目
10.1.1使用Internet和Intranet应用程序控制器
10.1.2理解MVC约定
10.2调试MVC应用程序
10.2.1创建项目
10.2.2运行VisualStudio调试器
10.2.3引发VisualStudio调试器中断
10.2.4使用编辑并继续
10.3项目范围的依赖性注入
10.4小结

第11章URL、路由与区域
11.1路由系统介绍
11.1.1创建路由项目
11.1.2URL模式介绍
11.1.3创建并注册一条简单路由
11.1.4定义默认值
11.1.5使用静态URL片段
11.1.6定义自定义片段变量
11.1.7定义可选URL片段
11.1.8定义可变长路由
11.1.9按命名空间区分控制器优先顺序
11.1.10约束路由
11.1.11对磁盘文件的请求进行路由
11.1.12绕过路由系统
11.2生成输出URL
11.2.1准备项目
11.2.2在视图中生成输出URL
11.2.3在动作方法中生成输出URL
11.2.4根据特定路由生成URL
11.3定制路由系统
11.3.1创建一个自定义的RouteBase实现
11.3.2创建自定义路由处理程序
11.4使用区域
11.4.1创建区域
11.4.2填充区域
11.4.3解析不明确的控制器问题
11.4.4生成对区域动作的链接
11.5URL方案最佳实践
11.5.1使URL整洁和人性化
11.5.2GET和POST:选用正确的一个
11.6小结

第12章控制器与动作
12.1控制器介绍
12.1.1准备项目
12.1.2用IController创建控制器
12.1.3创建派生于Controller类的控制器
12.2接收输入
12.2.1通过上下文对象获取数据
12.2.2使用动作方法参数
12.3产生输出
12.3.1理解动作结果
12.3.2通过渲染视图返回HTML
12.3.3把数据从动作方法传递给视图
12.3.4执行重定向
12.3.5返回文本数据
12.3.6返回XML数据
12.3.7返回JSON数据
12.3.8返回文件及二进制数据
12.3.9返回错误及HTTP代码
12.3.10创建自定义动作结果
12.4小结

第13章过滤器
13.1使用过滤器
13.1.1过滤器的四种基本类型
13.1.2将过滤器应用于控制器和动作方法
13.1.3使用授权过滤器
13.1.4使用异常过滤器
13.1.5使用动作和结果过滤器
13.1.6使用其他过滤器特性
13.1.7使用内建过滤器
13.2小结

第14章控制器可扩展性
14.1请求处理管道组件
14.2创建控制器工厂
14.2.1定义自定义控制器工厂
14.2.2注册自定义控制器工厂
14.3使用内建的控制器工厂
14.3.1命名空间优先排序
14.3.2定制DefaultControllerFactory的控制器创建
14.4创建自定义动作调用器
14.5使用内建的动作调用器
14.5.1使用自定义动作名
14.5.2动作方法选择
14.5.3用动作方法选择器支持REST服务
14.6用特殊控制器改善性能
14.6.1使用无会话控制器
14.6.2使用异步控制器
14.7小结

第15章视图
15.1创建自定义视图引擎
15.1.1创建自定义IView
15.1.2创建IViewEngine实现
15.1.3注册自定义视图引擎
15.2使用Razor引擎
15.2.1理解Razor视图渲染
15.2.2对Razor视图添加依赖性注入
15.2.3配置视图搜索位置
15.3对Razor视图添加动态内容
15.4使用HTML辅助器
15.4.1创建内联的HTML辅助器
15.4.2创建外部辅助器方法
15.4.3使用内建的HTML辅助器
15.5使用分段
15.5.1对分段进行检测
15.5.2渲染可选分段
15.6使用分部视图
15.6.1创建分部视图
15.6.2使用强类型分部视图
15.7使用子动作
15.7.1创建子动作
15.7.2渲染子动作
15.8小结

第16章模型模板
16.1使用模板视图辅助器
16.1.1设置生成HTML的样式
16.1.2使用模型元数据
16.1.3使用复合类型参数
16.2定制模板视图辅助器系统
16.2.1创建自定义编辑模板
16.2.2创建自定义显示模板
16.2.3创建泛型模板
16.2.4替换内建模板
16.2.5使用ViewData.TemplateInfo属性
16.2.6把额外元数据传递给模板
16.3理解元数据提供器系统
16.3.1创建自定义模型元数据提供器
16.3.2定制数据注解模型元数据提供器
16.4小结

第17章模型绑定
17.1理解模型绑定
17.2使用默认模型绑定器
17.2.1绑定简单类型
17.2.2绑定复合类型
17.2.3绑定到数组与集合
17.3手工调用模型绑定
17.3.1限制绑定到特定数据源
17.3.2处理绑定错误
17.4使用模型绑定接收文件上传
17.5自定义模型绑定系统
17.5.1创建自定义的值提供器
17.5.2创建依赖性感知的模型绑定器
17.5.3创建自定义模型绑定器
17.5.4创建模型绑定器提供器
17.5.5使用ModelBinder注解属性
17.6小结

第18章模型验证
18.1创建项目
18.2明确地验证模型
18.3显示验证消息
18.4使用其他验证技术
18.4.1模型绑定器中执行验证
18.4.2用元数据指定验证规则
18.4.3定义自验证模型
18.4.4创建自定义验证提供器
18.5执行客户端验证
18.5.1启用和禁用客户端验证
18.5.2使用客户端验证
18.5.3理解客户端验证机制
18.5.4自定义客户端验证
18.6执行远程验证
18.7小结

第19章非唐突Ajax
19.1使用MVC的非唐突Ajax
19.1.1创建项目
19.1.2启用和禁用非唐突Ajax
19.1.3使用非唐突Ajax表单
19.1.4理解非唐突Ajax如何工作
19.2设置Ajax选项
19.2.1确保优雅降级
19.2.2在Ajax请求期间给用户提供反馈
19.2.3请求之前对用户进行提示
19.3创建Ajax链接
19.4使用Ajax回调
19.5使用JSON
19.5.1对控制器添加JSON支持
19.5.2在浏览器中处理JSON
19.5.3在动作方法中检测Ajax请求
19.5.4接收JSON数据
19.6小结

第20章jQuery
20.1创建项目
20.2引用jQuery
20.3编写jQuery代码
20.4jQuery基本理论
20.4.1理解jQuery选择器
20.4.2使用jQuery过滤器
20.4.3理解jQuery方法
20.4.4等待DOM
20.4.5使用jQuery的CSS方法
20.4.6使用DOM
20.5使用jQuery事件
20.6使用jQuery视觉效果
20.7使用jQueryUI
20.7.1引用jQueryUI
20.7.2制作更好的按钮
20.7.3使用Silder滑块
20.8小结

第3部分交付已完成的ASP.NETMVC3项目
第21章安全性与脆弱性
21.1所有输入都可以伪造
伪造HTTP请求
21.2跨网站脚本与HTML注入
21.2.1理解XSS漏洞
21.2.2Razor的HTML编码
21.2.3请求验证
21.2.4JavaScript字符串编码与XSS
21.3会话劫持
21.3.1通过客户端IP地址检查进行防护
21.3.2通过在cookie中设置HttpOnly标志进行防护
21.4跨网站请求伪造
21.4.1攻击
21.4.2防护
21.4.3用Antiforgery辅助器阻止CSRF
21.5SQL注入
21.5.1攻击
21.5.2用参数化查询进行防护
21.5.3用对象关系映射进行防护
21.6安全使用MVC框架
21.6.1不要意外暴露动作方法
21.6.2不要允许模型绑定修改敏感属性
21.7小结

第22章认证与授权
22.1使用Windows认证
22.2使用表单认证
22.2.1建立表单认证
22.2.2使用cookieless表单认证
22.3使用成员、角色和简档
22.3.1建立并使用成员
22.3.2建立并使用角色
22.3.3建立并使用简档
22.4为什么不应该使用基于URL的授权
22.5小结

第23章部署
23.1准备要部署的应用程序
23.1.1部署前检测视图错误
23.1.2配置动态页面编译
23.1.3为bin部署做准备
23.1.4准备用于转换的Web.config文件
23.2理解转换结构
23.2.1插入配置元素
23.2.2删除配置元素
23.2.3设置和删除属性
23.2.4替换元素
23.2.5使用Locator属性
23.2.6准备数据库部署准备项目
23.3理解IIS基本原理
23.3.1理解Web网站
23.3.2理解虚拟目录
23.3.3理解应用程序池
23.3.4将Web网站绑定到主机名、IP地址及端口
23.4为部署准备服务器
23.5部署应用程序
23.5.1通过复制文件部署应用程序
23.5.2使用部署包
23.5.3使用一键发布
23.6小结

0 0