新書推薦:
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:HK$
65.0
《
罗马政治观念中的自由
》
售價:HK$
50.4
《
中国王朝内争实录:宠位厮杀
》
售價:HK$
61.6
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:HK$
44.6
《
未来特工局
》
售價:HK$
55.8
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:HK$
54.9
《
英国简史(刘金源教授作品)
》
售價:HK$
98.6
《
便宜货:廉价商品与美国消费社会的形成
》
售價:HK$
77.3
編輯推薦:
美国亚马逊畅销的经典图书
ASP.NET MVC 领域最具影响力的权威指南
知名微软技术专家、畅销书作者Adam Freeman倾力打造
指导读者建立最可维护、与标准兼容,且性能最佳的Web应用程序
內容簡介:
《精通ASP.NET MVC 3框架(第3版)》系统地介绍了ASP.NET
MVC方方面面的技术。全书语言流畅,说理透彻且示例翔实,并为软件开发人员探究ASP.NET
MVC奥秘提供了无尽的线索,是系统学习ASP.NET MVC开发技术的一本不可多得的好书。
《精通ASP.NET MVC 3框架(第3版)》分为3部分共23章,第一部分第1~9章系统介绍了ASP.NET
MVC的背景知识、基本思想和基本概念,并以一个实用的应用程序为例,详细介绍了MVC各个部分的基本实现方法和思想。第二部分第10~20章对MVC相关的主要技术分别作了详细的描述。第三部分第21~23章介绍了与MVC相关的一些外围技术,包括系统安全性、认证与授权,以及应用程序部署等。
《精通ASP.NET MVC 3框架(第3版)》适合希望采用ASP.NET
MVC技术从事Web应用程序开发的人员阅读,或作为大专院校教授ASP.NET
MVC开发技术的教材,也可供从事软件设计与开发的相关技术人员参考。
關於作者:
Adam
Freeman:是一位经验丰富的IT专家,曾在一系列公司担任高级职务。最后的职务是一家全球性银行的首席技术官和首席运营官。现已退休,目前正把他的时间用于写作和铁人三项训练。这是他的第11部关于编程的图书,也是第9部关于.NET的技术书籍。
Steven
Sanderson:就职于微软公司,是“Web平台与工具”团队的项目经理,致力于保证微软的Web技术对开发者尽可能有用。他既具备在新生的创业公司实践的经验、也具备在跨国公司从事Web开发的人生经历,也是相关主题的撰稿人和发言人。工作之余,他也在http:github.comSteveSanderson上从事开源项目的开发和维护。
目錄 :
第1部分 ASP.NET MVC 3简介
第1章 设计思路
1.1 Web开发简史
1.1.1 传统的ASP.NET Web Form
1.1.2 ASP.NET Web Form表单的问题在哪里
1.2 当今的Web开发
1.2.1 Web标准与REST
1.2.2 敏捷与测试驱动开发
1.2.3 Ruby on Rails
1.2.4 Sinatra
1.2.5 Node.js
1.3 ASP.NET MVC的主要优势
1.3.1 MVC架构
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.8 ASP.NET MVC是开源的
1.4 谁该使用ASP.NET MVC
1.4.1 与ASP.NET Web Form的比较
1.4.2 从Web Form迁移到MVC
1.4.3 与Ruby on Rails的比较
1.4.4 与MonoRail的比较
1.5 ASP.NET MVC 3的新特性
1.6 小结
第2章 准备工作
2.1 准备工作站
2.1.1 安装Visual Studio 2010
2.1.2 安装基本软件
2.1.3 安装可选组件
2.1.4 MVC框架源代码
2.1.5 IIS Express
2.1.6 SQL Server 2008 R2 Management Studio Express
2.2 准备服务器
2.2.1 启用Web服务器角色
2.2.2 安装其他组件
2.2.3 设置Web部署
2.2.4 获取更多信息
2.3 小结
第3章 第一个MVC应用程序
3.1 创建ASP.NET MVC新项目
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.1 MVC简史
4.2 理解MVC模式
4.2.1 理解域模型
4.2.2 MVC的ASP.NET实现
4.2.3 MVC与其他模式比较
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.1 C#基本特性
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.2 Ninject入门
6.1.3 创建依赖性链
6.1.4 指定属性与参数值
6.1.5 使用自身绑定
6.1.6 绑定到派生类型
6.1.7 使用条件绑定
6.2 将Ninject运用于APS.NET MVC
6.3 Visual Studio的单元测试
6.3.1 创建项目
6.3.2 创建单元测试
6.3.3 运行单元测试并失败
6.3.4 实现特性
6.4 使用Moq
6.4.1 将Moq添加到Visual Studio项目
6.4.2 用Moq创建模仿
6.4.3 使用Moq的单元测试
6.4.4 用Moq作校验
6.5 小结
第7章 SportsStore:一个真实的应用程序
7.1 开始
7.1.1 创建Visual Studio解决方案和项目
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 添加“Add to Cart加入购物车”按钮
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.NET MVC 3细节
第10章 MVC项目综述
10.1 使用Visual Studio的MVC项目
10.1.1 使用Internet和Intranet应用程序控制器
10.1.2 理解MVC约定
10.2 调试MVC应用程序
10.2.1 创建项目
10.2.2 运行Visual Studio调试器
10.2.3 引发Visual Studio调试器中断
10.2.4 使用编辑并继续
10.3 项目范围的依赖性注入
10.4 小结
第11章 URL、路由与区域
11.1 路由系统介绍
11.1.1 创建路由项目
11.1.2 URL模式介绍
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.5 URL方案最佳实践
11.5.1 使URL整洁和人性化
11.5.2 GET和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.4 jQuery基本理论
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 使用jQuery UI
20.7.1 引用jQuery UI
20.7.2 制作更好的按钮
20.7.3 使用Silder滑块
20.8 小结
第3部分 交付已完成的ASP.NET MVC 3项目
第21章 安全性与脆弱性
21.1 所有输入都可以伪造
伪造HTTP请求
21.2 跨网站脚本与HTML注入
21.2.1 理解XSS漏洞
21.2.2 Razor的HTML编码
21.2.3 请求验证
21.2.4 JavaScript字符串编码与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.5 SQL注入
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 小结