新書推薦:
《
石油帝国的兴衰:英国的工业化与去工业化
》
售價:NT$
445.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
根源、制度和秩序:从老子到黄老学(王中江著作系列)
》
售價:NT$
550.0
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:NT$
345.0
《
掌故家的心事
》
售價:NT$
390.0
《
农为邦本——农业历史与传统中国
》
售價:NT$
340.0
《
小麦文明:“黄金石油”争夺战
》
售價:NT$
445.0
《
悬壶杂记全集:老中医多年临证经验总结(套装3册) 中医医案诊疗思路和处方药应用
》
售價:NT$
614.0
內容簡介:
作为Microsoft备受欢迎的MVC技术的新版本,MVC5是一个成熟的Web应用程序框架,支持快速的、TDD友好的开发。MVC允许开发人员创建动态的、数据驱动的网站。这样的网站具有复杂的功能,如单页面应用程序、针对移动设备优化、适应性呈现等。
《ASP.NET MVC 5高级编程(第5版)》还包括了MVC5.1和MVC5.2中的一些新特性。通过采用分步骤讲解的方法,指导读者如何充分利用MVC。
《ASP.NET MVC 5高级编程(第5版)》的作者不是Microsoft的ASP.NETMVC专家,就是ASP.NETMVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。
《ASP.NET MVC 5高级编程(第5版)》主要内容:
解释了ASP.NETMVC框架与其他每个页面一个文件的Web框架的区别
介绍了控制器、视图、模型、表单、HTML辅助方法、数据注解和验证、成员资格、授权、安全性和路由
新增了对OneASP.NET项目模板、ASP.NETIdentity、Bootstrap和特性路由的介绍作为Microsoft备受欢迎的MVC技术的新版本,MVC5是一个成熟的Web应用程序框架,支持快速的、TDD友好的开发。MVC允许开发人员创建动态的、数据驱动的网站。这样的网站具有复杂的功能,如单页面应用程序、针对移动设备优化、适应性呈现等。
《ASP.NET MVC 5高级编程(第5版)》还包括了MVC5.1和MVC5.2中的一些新特性。通过采用分步骤讲解的方法,指导读者如何充分利用MVC。
《ASP.NET MVC 5高级编程(第5版)》的作者不是Microsoft的ASP.NETMVC专家,就是ASP.NETMVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。
《ASP.NET MVC 5高级编程(第5版)》主要内容:
解释了ASP.NETMVC框架与其他每个页面一个文件的Web框架的区别
介绍了控制器、视图、模型、表单、HTML辅助方法、数据注解和验证、成员资格、授权、安全性和路由
新增了对OneASP.NET项目模板、ASP.NETIdentity、Bootstrap和特性路由的介绍
探讨了一些重要主题,如Ajax、NuGet、依赖注入、单元测试和MVC扩展
提供了分步骤指导、真实案例以及众多代码示例,帮助读者从入门阶段进阶
關於作者:
Jon Galloway,Microsoft的一位专注于ASP.NET MVC的技术传道者。
Brad Wilson,拥有超过20年的专业软件开发经验,10年的Web开发经验。
K.Scott Allen,OdeToCode公司的创始人,为全球客户提供定制开发、顾问和指导服务。
David Matson,Microsoft的一名软件开发人员。他是MVC5和Web API 2产品团队的一员。
目錄 :
第1章 入门
1.1 ASP.NET MVC简介
1.1.1 ASP.NET MVC如何适应ASP.NET
1.1.2 MVC模式简介
1.1.3 MVC在Web框架中的应用
1.1.4 ASP.NET MVC 5的发展历程
1.1.5 ASP.NET MVC 4概述
1.1.6 开源发布
1.2 ASP.NET MVC 5概述
1.2.1 One ASP.NET
1.2.2 新的Web项目体验
1.2.3 ASP.NET Identity
1.2.4 Bootstrap模板
1.2.5 特性路由
1.2.6 ASP.NET基架
1.2.7 身份验证过滤器
1.2.8 过滤器重写
1.3 安装MVC 5和创建应用程序
1.3.1 ASP.NET MVC 5的软件需求
1.3.2 安装ASP.NET MVC
1.3.3 创建ASP.NET MVC 5应用程序
1.3.4 New ASP.NET Project对话框
1.4 ASP.NET MVC应用程序的结构
1.4.1 ASP.NET MVC和约定
1.4.2 约定优于配置
1.4.3 约定简化通信
1.5 小结
第2章 控制器
2.1 控制器的角色
2.2 示例应用程序:MVC Music Store
2.3 控制器基础
2.3.1 简单示例:Home Controller
2.3.2 创建第一个控制器
2.3.3 控制器操作中的参数
2.4 小结
第3章 视图
3.1 视图的作用
3.2 视图的基础知识
3.3 理解视图约定
3.4 强类型视图
3.4.1 ViewBag的不足
3.4.2 理解ViewBag、ViewData和ViewDataDictionary
3.5 视图模型
3.6 添加视图
3.7 Razor视图引擎
3.7.1 Razor的概念
3.7.2 代码表达式
3.7.3 HTML编码
3.7.4 代码块
3.7.5 Razor语法示例
3.7.6 布局
3.7.7 ViewStart
3.8 指定部分视图
3.9 小结
第4章 模型
4.1 为MVC Music Store建模
4.2 为商店管理器构造基架
4.2.1 基架的含义
4.2.2 基架和实体框架
4.2.3 执行基架模板
4.2.4 执行基架代码
4.3 编辑专辑
4.3.1 创建编辑专辑的资源
4.3.2 响应编辑时的POST请求
4.4 模型绑定
4.4.1 DefaultModelBinder
4.4.2 显式模型绑定
4.5 小结
第5章 表单和HTML辅助方法
5.1 表单的使用
5.1.1 action和method特性
5.1.2 GET方法还是POST方法
5.2 HTML辅助方法
5.2.1 自动编码
5.2.2 辅助方法的使用
5.2.3 HTML辅助方法的工作原理
5.2.4 设置专辑编辑表单
5.2.5 添加输入元素
5.2.6 辅助方法、模型和视图数据
5.2.7 强类型辅助方法
5.2.8 辅助方法和模型元数据
5.2.9 模板辅助方法
5.2.10 辅助方法和ModelState
5.3 其他输入辅助方法
5.3.1 Html.Hidden
5.3.2 Html.Password
5.3.3 Html.RadioButton
5.3.4 Html.CheckBox
5.4 渲染辅助方法
5.4.1 Html.ActionLink和Html.RouteLink
5.4.2 URL辅助方法
5.4.3 Html.Partial和Html.RenderPartial
5.4.4 Html.Action和Html.RenderAction
5.5 小结
第6章 数据注解和验证
6.1 为验证注解订单
6.1.1 验证注解的使用
6.1.2 自定义错误提示消息及其本地化
6.1.3 注解的后台原理
6.1.4 控制器操作和验证错误
6.2 自定义验证逻辑
6.2.1 自定义注解
6.2.2 IValidatableObject
6.3 显示和编辑注解
6.3.1 Display
6.3.2 ScaffoldColumn
6.3.3 DisplayFormat
6.3.4 ReadOnly
6.3.5 DataType
6.3.6 UIHint
6.3.7 HiddenInput
6.4 小结
第7章 成员资格、授权和安全性
7.1 安全性:无趣、但极其重要
7.2 使用Authorize特性登录
7.2.1 保护控制器操作
7.2.2 Authorize特性在表单身份验证和AccountController控制器中的用法
7.2.3 Windows Authentication
7.3 要求角色成员使用Authorize特性
7.4 扩展用户身份
7.4.1 存储额外的用户资料数据
7.4.2 持久化控制
7.4.3 管理用户和角色
7.5 通过OAuth和OpenID的外部登录
7.5.1 注册外部登录提供器
7.5.2 配置OpenID提供器
7.5.3 配置OAuth提供器
7.5.4 外部登录的安全性
7.6 Web应用程序中的安全向量
7.6.1 威胁:跨站脚本
7.6.2 威胁:跨站请求伪造
7.6.3 威胁:cookie盗窃
7.6.4 威胁:重复提交
7.6.5 威胁:开放重定向
7.7 适当的错误报告和堆栈跟踪
7.7.1 使用配置转换
7.7.2 在生产环境中使用Retail部署配置
7.7.3 使用专门的错误日志系统
7.8 安全回顾和有用资源
7.9 小结
第8章 Ajax
8.1 jQuery
8.1.1 jQuery的特性
8.1.2 非侵入式JavaScript
8.1.3 jQuery的用法
8.2 Ajax辅助方法
8.2.1 在项目中添加非侵入式Ajax脚本
8.2.2 Ajax的ActionLink方法
8.2.3 HTML 5特性
8.2.4 Ajax表单
8.3 客户端验证
8.3.1 jQuery验证
8.3.2 自定义验证
8.4 辅助方法之外
8.4.1 jQuery UI
8.4.2 使用jQuery UI实现自动完成部件
8.4.3 JSON和客户端模板
8.4.4 Bootstrap插件
8.5 提高Ajax性能
8.5.1 使用内容分发网络
8.5.2 脚本优化
8.5.3 捆绑和微小
8.6 小结
第9章 路由
9.1 统一资源定位符URL
9.2 路由概述
9.2.1 对比路由和URL重写
9.2.2 路由方法
9.2.3 定义特性路由
9.2.4 定义传统路由
9.2.5 选择特性路由还是传统路由
9.2.6 路由命名
9.2.7 MVC区域
9.2.8 catch-all参数
9.2.9 段中的多个路由参数
9.2.10 StopRoutingHandler和IgnoreRoute
9.2.11 路由的调试
9.3 揭秘路由如何生成URL
9.3.1 URL生成的高层次概述
9.3.2 URL生成详解
9.3.3 外界路由值
9.3.4 Route类生成URL的若干示例
9.4 揭秘路由如何绑定到操作
9.4.1 高层次请求的路由管道
9.4.2 路由数据
9.5 自定义路由约束
9.6 Web Forms和路由机制
9.7 小结
第10章 NuGet
10.1 NuGet概述
10.2 以包的形式添加库
10.2.1 查找包
10.2.2 安装包
10.2.3 更新包
10.2.4 包恢复
10.2.5 包管理器控制台的用法
10.3 创建包
10.3.1 打包项目
10.3.2 打包文件夹
10.3.3 配置文件和源代码转换
10.3.4 NuSpec文件
10.3.5 元数据
10.3.6 依赖库
10.3.7 指定要包含的文件
10.3.8 工具
10.3.9 框架和轮廓定位
10.3.10 预发布包
10.4 发布包
10.4.1 发布到NuGet.org
10.4.2 使用NuGet.exe
10.4.3 包浏览器的用法
10.5 小结
第11章 ASP.NET Web API
11.1 定义ASP.NET Web API
11.2 Web API入门
11.3 编写API控制器
11.3.1 检查示例ValuesController
11.3.2 异步设计:IHttpController
11.3.3 传入的操作参数
11.3.4 操作返回值、错误和异步
11.4 配置Web API
11.4.1 Web托管Web API的配置
11.4.2 自托管Web API的配置
11.5 向Web API添加路由
11.6 绑定参数
11.7 过滤请求
11.8 启用依赖注入
11.9 探索API编程
11.10 跟踪应用程序
11.11 Web API示例:ProductsController
11.12 小结
第12章 应用AngularJS构建单页面应用程序
12.1 理解和安装AngularJS
12.1.1 AngularJS简介
12.1.2 本章目标
12.1.3 入门
12.1.4 向网站中添加AngularJS
12.1.5 数据库设置
12.2 创建Web API
12.3 创建应用程序和模块
12.3.1 创建控制器、模型和视图
12.3.2 服务
12.3.3 路由
12.3.4 详细视图
12.3.5 自定义电影服务
12.3.6 删除电影
12.3.7 编辑和创建电影
12.4 小结
第13章 依赖注入
13.1 软件设计模式
13.1.1 设计模式控制反转模式
13.1.2 设计模式服务定位器
MVC中的依赖解析
13.2.1 MVC中的单一注册服务
13.2.2 MVC中的复合注册服务
13.2.3 MVC中的任意对象
13.3 Web API中的依赖解析
13.3.1 Web API中的单一注册服务
13.3.2 Web API中的复合注册服务
13.3.3 Web API中的任意对象
13.3.4 对比MVC和Web API中的依赖解析器
13.4 小结
第14章 单元测试
14.1 单元测试和测试驱动开发的意义
14.1.1 单元测试的定义
14.1.2 测试驱动开发的定义
14.2 创建单元测试项目
14.2.1 检查默认单元测试
14.2.2 只测试自己编写的代码
14.3 单元测试用于ASP.NET MVC和ASP.NET Web API应用程序的技巧和窍门
14.3.1 控制器测试
14.3.2 路由测试
14.3.3 验证测试
14.4 小结
第15章 扩展ASP.NET MVC
15.1 模型扩展
15.1.1 把请求数据转换为模型
15.1.2 用元数据描述模型
15.1.3 验证模型
15.2 视图扩展
15.2.1 自定义视图引擎
15.2.2 编写HTML辅助方法
15.2.3 编写Razor辅助方法
15.3 控制器扩展
15.3.1 操作选择
15.3.2 操作过滤器
15.3.3 提供自定义结果
15.4 小结
第16章 高级主题
16.1 移动支持
16.1.1 适应性呈现
16.1.2 显示模式
16.2 高级Razor
16.2.1 模板化的Razor委托
16.2.2 视图编译
16.3 高级视图引擎
16.3.1 视图引擎配置
16.3.2 查找视图
16.3.3 视图本身
16.3.4 备用视图引擎
16.3.5 新视图引擎还是新ActionResult
16.4 高级基架
16.4.1 ASP.NET基架简介
16.4.2 自定义基架模板
16.4.3 自定义基架器
16.5 高级路由
16.5.1 RouteMagic
16.5.2 可编辑路由
16.6 高级模板
16.6.1 默认模板
16.6.2 自定义模板
16.7 高级控制器
16.7.1 定义控制器:IController接口
16.7.2 ControllerBase抽象基类
16.7.3 控制器类和操作
16.7.4 ActionResult
16.7.5 操作调用器
16.7.6 使用异步控制器操作
16.8 小结
第17章 ASP.NET MVC实战: 构建NuGet.org网站
17.1 源码与我们同在
17.2 WebActivator
17.3 ASP.NET动态数据
17.4 异常日志
17.5 性能分析
17.6 数据访问
17.7 EF基于代码迁移
17.8 使用Octopus Deploy进行部署
17.9 使用Fluent Automation自动进行浏览器测试
17.10 其他有用的NuGet包
17.10.1 WebBackgrounder
17.10.2 Lucene.NET
17.10.3 AnglicanGeek.MarkdownMailer
17.10.4 Ninject
17.11 小结
附录A ASP.NET MVC 5.
內容試閱 :
对于一名ASP.NET开发人员来说,这是一个伟大的时刻!
无论是对于已经拥有ASP.NET多年开发经验的开发人员,还是对于刚刚入门的初学者,现在都是深入学习ASP.NET MVC的绝佳时机。ASP.NET MVC从一开始就有很多乐趣,但最近两个版本添加了许多特性,使整个开发过程变得非常愉悦。
ASP.NET MVC 3带来了像Razor视图引擎这样的新特性,与NuGet包管理系统和jQuery内置整合来简化Ajax开发。ASP.NET MVC 5继续这一趋势,添加了更新的可视化设计、移动Web支持、使用ASP.NET Web API的HTTP服务、内置支持OAuth与流行网站的整合等。这样我们就可以快速地开始使用全功能Web应用程序。
这也不是简单地利用拖放功能提高短期生产率。这一切都建立在一个基于模式的Web框架上,当需要时,这个框架可帮助我们控制应用程序的每个方面。
加入我们会踏上有趣翔实的ASP.NET MVC 5之旅!
本书读者对象
本书由浅入深地介绍ASP.NET MVC,是一本优秀的ASP.NET MVC教程。
如果刚刚接触ASP.NET MVC,本书首先会帮助学习MVC概念,然后演示如何在应用代码示例中应用这些概念。本书作者已经指导成千上万名开发人员开始学习ASP.NET MVC,指导怎样安排结构思路,以便快速创建,入门开发。
我们知道许多读者都熟悉ASP.NET Web Forms,在一些上下文中,我们介绍它们之间的异同来帮助理解它们之间的关系。事实上,ASP.NET MVC 5不是ASP.NET Web Forms的替换品。许多Web开发人员也使用其他Web框架,比如Ruby on Rails、Node.js、Django,一些PHP框架等,这些框架都适用于MVC(模型-视图-控制器,Model-View-Controller)应用模式。如果你属于这类开发人员,或者只是好奇,本书就适合你。
我们也付出了很大努力,确保本书能够为拥有ASP.NET MVC经验的开发人员提供一些帮助。在本书的各个章节,我们介绍了组件设计原理,以及如何最好地使用它们。我们添加了新的内容,包括大大扩展了介绍路由的一章,以介绍ASP.NET MVC 5中新增的特性路由功能。我们还利用从NuGet Gallery开发团队那里直接得到的知识,更新了最后一章的NuGet Gallery案例分析,解释了NuGet开发团队如何构建和开发真实世界中高容量的ASP.NET MVC网站。另外,K. Scott Allen还新撰写了一章,解释了如何使用AngularJS构建单页面应用程序。
本书组织结构
本书分为两大部分,每部分由几个章节构成。前6章主要介绍了MVC模式,以及ASP.NET MVC是如何实现MVC模式的。