出版时间:2013-5 出版社:[美]Adam Freeman Steven Standerson、 林逸 李萍 人民邮电出版社 (2013-05出版) 作者:[美] Adam Freeman Steven Standerson 译者:林逸 李萍
Tag标签:无
内容概要
《精通ASP.NET MVC 3框架(第三版)》系统地介绍了ASP.NET MVC方方面面的技术。全书语言流畅,说理透彻且示例翔实,并为软件开发人员探究ASP.NET MVC奥秘提供了无尽的线索,是系统学习ASP.NET MVC开发技术的一本不可多得的好书。
《精通ASP.NET MVC 3框架(第三版)》分为3部分共23章,第一部分(第1~9章)系统介绍了ASP.NET MVC的背景知识、基本思想和基本概念,并以一个实用的应用程序为例,详细介绍了MVC各个部分的基本实现方法和思想。第二部分(第10~20章)对MVC相关的主要技术分别作了详细的描述。第三部分(第21~23章)介绍了与MVC相关的一些外围技术,包括系统安全性、认证与授权,以及应用程序部署等。
《精通ASP.NET MVC 3框架(第三版)》适合希望采用ASP.NET MVC技术从事Web应用程序开发的人员阅读,或作为大专院校教授ASP.NET MVC开发技术的教材,也可供从事软件设计与开发的相关技术人员参考。
作者简介
Adam Freeman:是一位经验丰富的IT专家,曾在一系列公司担任高级职务。最后的职务是一家全球性银行的首席技术官和首席运营官。现已退休,目前正把他的时间用于写作和铁人三项训练。这是他的第11部关于编程的图书,也是第9部关于.NET的技术书籍。Steven Sanderson:就职于微软公司,是“Web平台与工具”团队的项目经理,致力于保证微软的Web技术对开发者尽可能有用。他既具备在新生的创业公司实践的经验、也具备在跨国公司从事Web开发的人生经历,也是相关主题的撰稿人和发言人。工作之余,他也在http://github.com/SteveSanderson上从事开源项目的开发和维护。
书籍目录
目 录第1部分 ASP.NET MVC 3简介第1章 设计思路 21.1 Web开发简史 21.1.1 传统的ASP.NET Web Form 31.1.2 ASP.NET Web Form表单的问题在哪里 31.2 当今的Web开发 41.2.1 Web标准与REST 41.2.2 敏捷与测试驱动开发 51.2.3 Ruby on Rails 51.2.4 Sinatra 61.2.5 Node.js 61.3 ASP.NET MVC的主要优势 71.3.1 MVC架构 71.3.2 可扩展性 71.3.3 在HTML及HTTP上的严密控制 81.3.4 可测试性 81.3.5 强大的路由系统 91.3.6 建立在ASP.NET平台的精华之上 91.3.7 现代API 101.3.8 ASP.NET MVC是开源的 101.4 谁该使用ASP.NET MVC 101.4.1 与ASP.NET Web Form的比较 111.4.2 从Web Form迁移到MVC 111.4.3 与Ruby on Rails的比较 111.4.4 与MonoRail的比较 121.5 ASP.NET MVC 3的新特性 121.6 小结 12第2章 准备工作 132.1 准备工作站 132.1.1 安装Visual Studio 2010 132.1.2 安装基本软件 142.1.3 安装可选组件 152.1.4 MVC框架源代码 162.1.5 IIS Express 162.1.6 SQL Server 2008 R2 Management Studio Express 162.2 准备服务器 162.2.1 启用Web服务器角色 172.2.2 安装其他组件 182.2.3 设置Web部署 192.2.4 获取更多信息 212.3 小结 21第3章 第一个MVC应用程序 223.1 创建ASP.NET MVC新项目 223.1.1 添加第一个控制器 243.1.2 理解路由 253.2 渲染Web页面 263.2.1 创建并渲染一个视图 263.2.2 添加动态输出 283.3 创建一个简单的数据录入应用程序 293.3.1 设置场景 303.3.2 设计一个数据模型 313.3.3 添加模型类 313.3.4 链接动作方法 313.3.5 创建动作方法 323.3.6 添加一个强类型视图 333.3.7 建立表单 343.3.8 处理表单 363.3.9 使用模型绑定 373.3.10 渲染其他视图 383.3.11 添加验证 393.3.12 高亮无效字段 413.3.13 完成示例 423.4 小结 43第4章 MVC模式 444.1 MVC简史 444.2 理解MVC模式 444.2.1 理解域模型 454.2.2 MVC的ASP.NET实现 464.2.3 MVC与其他模式比较 464.2.4 理解“智能UI”模式 464.2.5 理解MVC的变异 484.3 运用域驱动开发(DDD) 494.3.1 模拟一个例子域 504.3.2 通用语言 504.3.3 聚合与简化 514.3.4 定义存储库 534.4 建立松耦合组件 534.4.1 使用依赖性注入 544.4.2 一个MVC专用的依赖性注入示例 564.4.3 使用依赖性注入容器 574.5 自动测试初步 574.5.1 理解单元测试 584.5.2 使用测试驱动开发及“红—绿—重构”工作流 604.5.3 理解集成测试 654.6 小结 66第5章 基本语言特性 675.1 C#基本特性 675.1.1 使用自动实现的属性 675.1.2 使用对象与集合初始化器 705.1.3 使用扩展方法 715.1.4 对接口运用扩展方法 735.1.5 创建过滤扩展方法 755.1.6 使用lambda表达式 765.1.7 使用自动类型接口 785.1.8 使用匿名类型 785.1.9 执行语言集成查询 795.1.10 理解延迟LINQ查询 835.1.11 反复使用延迟查询 845.2 理解Razor语法 865.2.1 创建项目 865.2.2 考察基本的Razor视图 885.3 小结 95第6章 MVC基本工具 966.1 使用Ninject 966.1.1 创建项目 986.1.2 Ninject入门 996.1.3 创建依赖性链 1006.1.4 指定属性与参数值 1026.1.5 使用自身绑定 1036.1.6 绑定到派生类型 1046.1.7 使用条件绑定 1056.2 将Ninject运用于APS.NET MVC 1066.3 Visual Studio的单元测试 1086.3.1 创建项目 1086.3.2 创建单元测试 1106.3.3 运行单元测试(并失败) 1146.3.4 实现特性 1146.4 使用Moq 1156.4.1 将Moq添加到Visual Studio项目 1166.4.2 用Moq创建模仿 1166.4.3 使用Moq的单元测试 1186.4.4 用Moq作校验 1206.5 小结 120第7章 SportsStore:一个真实的应用程序 1217.1 开始 1227.1.1 创建Visual Studio解决方案和项目 1227.1.2 添加引用 1237.1.3 建立DI容器 1247.1.4 运行应用程序 1257.2 从域模型开始 1267.2.1 创建抽象存储库 1277.2.2 制作模仿存储库 1277.3 显示产品列表 1287.3.1 添加控制器 1287.3.2 添加视图 1297.3.3 设置默认路由 1307.3.4 运行应用程序 1317.4 准备数据库 1317.4.1 创建数据库 1327.4.2 定义数据库方案 1327.4.3 向数据库添加数据 1337.4.4 创建实体框架上下文 1347.4.5 创建Product存储库 1357.5 添加分页 1367.5.1 显示页面链接 1387.5.2 改进URL 1457.6 设置内容样式 1467.6.1 定义布局中的公用内容 1467.6.2 添加CSS规则 1477.6.3 创建分部视图 1487.7 小结 150第8章 SportsStore:导航与购物车 1518.1 添加导航控件 1518.1.1 过滤产品列表 1518.1.2 调整URL方案 1548.1.3 建立分类导航菜单 1568.1.4 修正页面计数 1638.2 建立购物车 1658.2.1 定义购物车实体 1658.2.2 添加“Add to Cart(加入购物车)”按钮 1698.2.3 实现购物车控制器 1708.2.4 显示购物车内容 1728.3 使用模型绑定 1748.4 完成购物车 1798.4.1 删除购物车的条目 1798.4.2 添加购物车摘要 1808.5 递交订单 1828.5.1 扩充域模型 1828.5.2 添加结算过程 1838.5.3 实现订单处理器 1868.5.4 注册接口实现 1898.5.5 完成购物车控制器 1898.5.6 显示验证错误 1938.5.7 显示致谢页面 1938.6 小结 195第9章 SportsStore:管理 1969.1 添加分类管理 1969.1.1 创建CRUD控制器 1969.1.2 渲染存储库中的产品 1989.1.3 创建新的布局 1999.1.4 实现List视图 2019.1.5 编辑产品 2049.1.6 创建新产品 2169.1.7 删除产品 2179.2 使管理特性安全 2209.2.1 建立表单认证 2209.2.2 运用过滤器进行授权 2219.2.3 创建认证提供器 2229.2.4 创建Account控制器 2239.2.5 创建视图 2259.3 图像上传 2289.3.1 扩展数据库 2289.3.2 增强域模型 2299.3.3 创建Upload用户界面元素 2309.3.4 将图像保存到数据库 2319.3.5 实现GetImage动作方法 2329.3.6 显示产品图像 2349.4 小结 235第2部分 ASP.NET MVC 3细节第10章 MVC项目综述 23810.1 使用Visual Studio的MVC项目 23810.1.1 使用Internet和Intranet应用程序控制器 24110.1.2 理解MVC约定 24110.2 调试MVC应用程序 24310.2.1 创建项目 24310.2.2 运行Visual Studio调试器 24410.2.3 引发Visual Studio调试器中断 24510.2.4 使用编辑并继续 24810.3 项目范围的依赖性注入 25110.4 小结 253第11章 URL、路由与区域 25411.1 路由系统介绍 25411.1.1 创建路由项目 25511.1.2 URL模式介绍 25611.1.3 创建并注册一条简单路由 25811.1.4 定义默认值 26211.1.5 使用静态URL片段 26311.1.6 定义自定义片段变量 26611.1.7 定义可选URL片段 26811.1.8 定义可变长路由 26911.1.9 按命名空间区分控制器优先顺序 27111.1.10 约束路由 27311.1.11 对磁盘文件的请求进行路由 27711.1.12 绕过路由系统 27911.2 生成输出URL 28011.2.1 准备项目 28111.2.2 在视图中生成输出URL 28111.2.3 在动作方法中生成输出URL 28711.2.4 根据特定路由生成URL 28811.3 定制路由系统 28911.3.1 创建一个自定义的RouteBase实现 28911.3.2 创建自定义路由处理程序 29311.4 使用区域 29411.4.1 创建区域 29411.4.2 填充区域 29611.4.3 解析不明确的控制器问题 29711.4.4 生成对区域动作的链接 29811.5 URL方案最佳实践 29911.5.1 使URL整洁和人性化 29911.5.2 GET和POST:选用正确的一个 30011.6 小结 301第12章 控制器与动作 30212.1 控制器介绍 30212.1.1 准备项目 30212.1.2 用IController创建控制器 30212.1.3 创建派生于Controller类的控制器 30312.2 接收输入 30512.2.1 通过上下文对象获取数据 30512.2.2 使用动作方法参数 30612.3 产生输出 30812.3.1 理解动作结果 31012.3.2 通过渲染视图返回HTML 31312.3.3 把数据从动作方法传递给视图 31712.3.4 执行重定向 32112.3.5 返回文本数据 32512.3.6 返回XML数据 32712.3.7 返回JSON数据 32812.3.8 返回文件及二进制数据 32812.3.9 返回错误及HTTP代码 33112.3.10 创建自定义动作结果 33212.4 小结 335第13章 过滤器 33613.1 使用过滤器 33613.1.1 过滤器的四种基本类型 33813.1.2 将过滤器应用于控制器和动作方法 33813.1.3 使用授权过滤器 33913.1.4 使用异常过滤器 34513.1.5 使用动作和结果过滤器 34813.1.6 使用其他过滤器特性 35313.1.7 使用内建过滤器 35813.2 小结 361第14章 控制器可扩展性 36214.1 请求处理管道组件 36214.2 创建控制器工厂 36214.2.1 定义自定义控制器工厂 36314.2.2 注册自定义控制器工厂 36514.3 使用内建的控制器工厂 36514.3.1 命名空间优先排序 36614.3.2 定制DefaultControllerFactory的控制器创建 36614.4 创建自定义动作调用器 36814.5 使用内建的动作调用器 37014.5.1 使用自定义动作名 37114.5.2 动作方法选择 37214.5.3 用动作方法选择器支持REST服务 37514.6 用特殊控制器改善性能 37714.6.1 使用无会话控制器 37814.6.2 使用异步控制器 38014.7 小结 388第15章 视图 38915.1 创建自定义视图引擎 38915.1.1 创建自定义IView 39115.1.2 创建IViewEngine实现 39215.1.3 注册自定义视图引擎 39315.2 使用Razor引擎 39515.2.1 理解Razor视图渲染 39515.2.2 对Razor视图添加依赖性注入 39715.2.3 配置视图搜索位置 39815.3 对Razor视图添加动态内容 40015.4 使用HTML辅助器 40515.4.1 创建内联的HTML辅助器 40615.4.2 创建外部辅助器方法 40715.4.3 使用内建的HTML辅助器 40815.5 使用分段 42115.5.1 对分段进行检测 42315.5.2 渲染可选分段 42415.6 使用分部视图 42415.6.1 创建分部视图 42415.6.2 使用强类型分部视图 42515.7 使用子动作 42715.7.1 创建子动作 42715.7.2 渲染子动作 42815.8 小结 428第16章 模型模板 42916.1 使用模板视图辅助器 42916.1.1 设置生成HTML的样式 43316.1.2 使用模型元数据 43416.1.3 使用复合类型参数 44116.2 定制模板视图辅助器系统 44216.2.1 创建自定义编辑模板 44216.2.2 创建自定义显示模板 44516.2.3 创建泛型模板 44616.2.4 替换内建模板 44616.2.5 使用ViewData.TemplateInfo属性 44716.2.6 把额外元数据传递给模板 44916.3 理解元数据提供器系统 45016.3.1 创建自定义模型元数据提供器 45116.3.2 定制数据注解模型元数据提供器 45316.4 小结 454第17章 模型绑定 45517.1 理解模型绑定 45517.2 使用默认模型绑定器 45717.2.1 绑定简单类型 45817.2.2 绑定复合类型 45917.2.3 绑定到数组与集合 46217.3 手工调用模型绑定 46517.3.1 限制绑定到特定数据源 46617.3.2 处理绑定错误 46717.4 使用模型绑定接收文件上传 46817.5 自定义模型绑定系统 46917.5.1 创建自定义的值提供器 46917.5.2 创建依赖性感知的模型绑定器 47117.5.3 创建自定义模型绑定器 47217.5.4 创建模型绑定器提供器 47417.5.5 使用ModelBinder注解属性 47517.6 小结 476第18章 模型验证 47718.1 创建项目 47718.2 明确地验证模型 47918.3 显示验证消息 48118.4 使用其他验证技术 48518.4.1 模型绑定器中执行验证 48518.4.2 用元数据指定验证规则 48818.4.3 定义自验证模型 49218.4.4 创建自定义验证提供器 49318.5 执行客户端验证 49618.5.1 启用和禁用客户端验证 49718.5.2 使用客户端验证 50018.5.3 理解客户端验证机制 50218.5.4 自定义客户端验证 50318.6 执行远程验证 50918.7 小结 511第19章 非唐突Ajax 51219.1 使用MVC的非唐突Ajax 51219.1.1 创建项目 51219.1.2 启用和禁用非唐突Ajax 51519.1.3 使用非唐突Ajax表单 51619.1.4 理解非唐突Ajax如何工作 51719.2 设置Ajax选项 51819.2.1 确保优雅降级 51819.2.2 在Ajax请求期间给用户提供反馈 52019.2.3 请求之前对用户进行提示 52119.3 创建Ajax链接 52219.4 使用Ajax回调 52419.5 使用JSON 52719.5.1 对控制器添加JSON支持 52819.5.2 在浏览器中处理JSON 52919.5.3 在动作方法中检测Ajax请求 53019.5.4 接收JSON数据 53119.6 小结 533第20章 jQuery 53420.1 创建项目 53420.2 引用jQuery 53620.3 编写jQuery代码 53820.4 jQuery基本理论 54120.4.1 理解jQuery选择器 54220.4.2 使用jQuery过滤器 54420.4.3 理解jQuery方法 54720.4.4 等待DOM 54720.4.5 使用jQuery的CSS方法 54820.4.6 使用DOM 55120.5 使用jQuery事件 55420.6 使用jQuery视觉效果 55520.7 使用jQuery UI 55620.7.1 引用jQuery UI 55720.7.2 制作更好的按钮 55720.7.3 使用Silder滑块 55920.8 小结 561第3部分 交付已完成的ASP.NET MVC 3项目第21章 安全性与脆弱性 56421.1 所有输入都可以伪造 564伪造HTTP请求 56621.2 跨网站脚本与HTML注入 56721.2.1 理解XSS漏洞 56821.2.2 Razor的HTML编码 56921.2.3 请求验证 57021.2.4 JavaScript字符串编码与XSS 57221.3 会话劫持 57421.3.1 通过客户端IP地址检查进行防护 57521.3.2 通过在cookie中设置HttpOnly标志进行防护 57521.4 跨网站请求伪造 57621.4.1 攻击 57721.4.2 防护 57721.4.3 用Antiforgery辅助器阻止CSRF 57821.5 SQL注入 57921.5.1 攻击 58021.5.2 用参数化查询进行防护 58021.5.3 用对象关系映射进行防护 58121.6 安全使用MVC框架 58121.6.1 不要意外暴露动作方法 58121.6.2 不要允许模型绑定修改敏感属性 58221.7 小结 582第22章 认证与授权 58322.1 使用Windows认证 58322.2 使用表单认证 58522.2.1 建立表单认证 58622.2.2 使用cookieless表单认证 58822.3 使用成员、角色和简档 58922.3.1 建立并使用成员 59022.3.2 建立并使用角色 59822.3.3 建立并使用简档 60122.4 为什么不应该使用基于URL的授权 60622.5 小结 608第23章 部署 60923.1 准备要部署的应用程序 60923.1.1 部署前检测视图错误 60923.1.2 配置动态页面编译 61023.1.3 为bin部署做准备 61123.1.4 准备用于转换的Web.config文件 61223.2 理解转换结构 61323.2.1 插入配置元素 61523.2.2 删除配置元素 61723.2.3 设置和删除属性 61823.2.4 替换元素 61923.2.5 使用Locator属性 62023.2.6 准备数据库部署准备项目 62223.3 理解IIS基本原理 62423.3.1 理解Web网站 62423.3.2 理解虚拟目录 62523.3.3 理解应用程序池 62523.3.4 将Web网站绑定到主机名、IP地址及端口 62523.4 为部署准备服务器 62623.5 部署应用程序 62723.5.1 通过复制文件部署应用程序 62723.5.2 使用部署包 62923.5.3 使用一键发布 63123.6 小结 632
媒体关注与评论
对于初学者和程序开发人员要学习先进的MVC开发来说,这是一本完美的书。这是一本一站式学通ASP.NET MVC 3框架的佳作,它开始以一个可爱的小示例应用程序为引导,让新手快速入门,然后详细讲解了覆盖MVC模式的核心开发技术,如涉及域驱动开发、数据库、依赖注入,以及自动化测试。接下来讲解了MVC开发人员应该熟悉的工具,以及Razor语法,并引入了Razor视图引擎。在下面的章节中,作者通过建立一个真正的应用程序,把一切开发技术纳入其中,还包括单元测试,此应用程序是一个完整的电子商务网站。书中也包括对URL、路由、控制器和动作、过滤器、控制器可扩展性、视图、模型模板、模型绑定、模型验证,以及Ajax和jQuery的热点技术。书的最后介绍了安全、身份验证和部署。总之,这是一本非常全面的书,它涵盖了NET架构师和开发人员需要知道建立Web应用的所有知识。书中提供的下载代码组织得非常好。本书语言流畅,示例详实,为软件开发人员学习ASP.NET MVC的技术提供了很大的帮助。我强烈推荐这本书,是任何想学习ASP.NET MVC框架的读者必备的图书。 摘自于亚马逊的评论
编辑推荐
美国亚马逊畅销的经典图书ASP.NET MVC 领域最具影响力的权威指南知名微软技术专家、畅销书作者Adam Freeman倾力打造指导读者建立最可维护、与标准兼容,且性能最佳的Web应用程序
图书封面
图书标签Tags
无
评论、评分、阅读与下载