《ASP.NET MVC 5高级编程(第5版)》作为Microsoft备受欢迎的MVC技术的最新版本,MVC 5是一个成熟的Web应用程序框架,支持快速的、TDD友好的开发。MVC允许开发人员创建动态的、数据驱动的网站。这样的网站具有复杂的功能,如单页面应用程序、针对移动设备优化、适应性呈现等。本书还包括了MVC 5.1和MVC 5.2中的一些新特性。通过采用分步骤讲解的方法,指导读者如何充分利用MVC。本书的作者不是Microsoft的ASP.NET MVC专家,就是ASP.NET MVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。
主要内容
◆ 解释了ASP.NET MVC框架与其他“每个页面一个文件”的Web框架的区别
◆ 介绍了控制器、视图、模型、表单、HTML辅助方法、数据注解和验证、成员资格、授权、安全性和路由
◆ 新增了对One ASP.NET项目模板、ASP.NET Identity、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.1 ASP.NET MVC简介 1
1.1.1 ASP.NET MVC如何适应ASP.NET 1
1.1.2 MVC模式简介 2
1.1.3 MVC在web框架中的应用 2
1.1.4 ASP.NET MVC 5的发展历程 3
1.1.5 ASP.NET MVC 4概述 6
1.1.6 开源发布 9
1.2 ASP.NET MVC 5概述 9
1.2.1 One ASP.NET 10
1.2.2 新的Web项目体验 10
1.2.3 ASP.NET Identity 10
1.2.4 Bootstrap模板 11
1.2.5 特性路由 13
1.2.6 ASP.NET基架 13
1.2.7 身份验证过滤器 13
1.2.8 过滤器重写 13
1.3 安装MVC 5和创建应用程序 13
1.3.1 ASP.NET MVC 5的软件需求 13
1.3.2 安装ASP.NET MVC 5 14
1.3.3 创建ASP.NET MVC 5应用程序 14
1.3.4 New ASP.NET Project对话框 15
1.4 ASP.NET MVC应用程序的结构 19
1.4.1 ASP.NET MVC和约定 21
1.4.2 约定优于配置 21
1.4.3 约定简化通信 22
1.5 小结 22
第2章 控制器 23
2.1 控制器的角色 23
2.2 示例应用程序:MVC Music Store 25
2.3 控制器基础 28
2.3.1 简单示例:Home Controller 28
2.3.2 创建第一个控制器 30
2.3.3 控制器操作中的参数 33
2.4 小结 35
第3章 视图 36
3.1 视图的作用 37
3.2 视图的基础知识 37
3.3 理解视图约定 40
3.4 强类型视图 41
3.4.1 ViewBag的不足 41
3.4.2 理解ViewBag、ViewData和ViewDataDictionary 43
3.5 视图模型 44
3.6 添加视图 45
3.7 Razor视图引擎 47
3.7.1 Razor的概念 48
3.7.2 代码表达式 49
3.7.3 html编码 50
3.7.4 代码块 52
3.7.5 Razor语法示例 52
3.7.6 布局 54
3.7.7 ViewStart 56
3.8 指定部分视图 57
3.9 小结 58
第4章 模型 59
4.1 为MVC Music Store建模 60
4.2 为商店管理器构造基架 63
4.2.1 基架的含义 63
4.2.2 基架和实体框架 64
4.2.3 执行基架模板 66
4.2.4 执行基架代码 71
4.3 编辑专辑 75
4.3.1 创建编辑专辑的资源 76
4.3.2 响应编辑时的POST请求 79
4.4 模型绑定 80
4.4.1 DefaultModelBinder 81
4.4.2 显式模型绑定 82
4.5 小结 84
第5章 表单和HTML辅助方法 85
5.1 表单的使用 85
5.1.1 action和method特性 86
5.1.2 GET方法还是POST方法 86
5.2 HTML辅助方法 89
5.2.1 自动编码 90
5.2.2 辅助方法的使用 91
5.2.3 HTML辅助方法的工作原理 91
5.2.4 设置专辑编辑表单 92
5.2.5 添加输入元素 93
5.2.6 辅助方法、模型和视图数据 98
5.2.7 强类型辅助方法 100
5.2.8 辅助方法和模型元数据 101
5.2.9 模板辅助方法 101
5.2.10 辅助方法和ModelState 102
5.3 其他输入辅助方法 103
5.3.1 Html.Hidden 103
5.3.2 Html.Password 103
5.3.3 Html.RadioButton 103
5.3.4 Html.CheckBox 104
5.4 渲染辅助方法 104
5.4.1 Html.ActionLink和Html.RouteLink 104
5.4.2 URL辅助方法 105
5.4.3 Html.Partial和Html.RenderPartial 106
5.4.4 Html.Action和Html.RenderAction 107
5.5 小结 108
第6章 数据注解和验证 109
6.1 为验证注解订单 110
6.1.1 验证注解的使用 112
6.1.2 自定义错误提示消息及其本地化 116
6.1.3 注解的后台原理 117
6.1.4 控制器操作和验证错误 118
6.2 自定义验证逻辑 120
6.2.1 自定义注解 120
6.2.2 IValidatableObject 123
6.3 显示和编辑注解 124
6.3.1 Display 124
6.3.2 ScaffoldColumn 125
6.3.3 DisplayFormat 125
6.3.4 ReADOnly 125
6.3.5 DataType 126
6.3.6 UIHint 126
6.3.7 HiddenInput 126
6.4 小结 126
第7章 成员资格、授权和安全性 127
7.1 安全性:无趣、但极其重要 127
7.2 使用Authorize特性登录 129
7.2.1 保护控制器操作 129
7.2.2 Authorize特性在表单身份验证和AccountController控制器中的用法
对于一名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模式的。
第1章“入门”帮助你开始进行ASP.NET MVC 5开发。首先介绍了ASP.NET MVC的概念,然后解释ASP.NET MVC 5如何顺应以前的发布版本。最后,在确保正确安装软件之后,帮助你开始创建你的第一个ASP.NET MVC 5应用程序。
第2章“控制器”讲解控制器和操作的基础内容。你开始编写一些基本的“hello world”示例,然后创建从URL中提取信息并在屏幕上显示应用程序。
第3章“视图”介绍如何从控制器操作中使用视图模板控制输出的可视化表示。此外,还会全面地介绍Razor视图引擎,其中包括帮助组织和维护的语法和特征。
第4章“模型”帮助你学习如何使用模型在控制器和视图之间传递信息,以及如何使用Entity Framework的Code First开发集成数据库和模型。
第5章“表单和HTML辅助方法”深入介绍编辑情形,解释ASP.NET MVC处理表单的方式。你将从本章中学习到如何使用HTML辅助方法精简视图。
第6章“数据注解和验证”介绍如何使用特性定义模型显示、编辑和验证的规则。
接下来的10章以前面的内容为基础,介绍了一些更加高级的概念和应用程序。
第7章“成员资格、授权和安全性”介绍如何确保ASP.NET MVC应用程序安全,并指出常见的安全陷阱以及避开这些陷阱的方法。此外,你还会学习到如何利用ASP.NET MVC应用程序中的ASP.NET成员资格和授权特性来控制访问权限。另外还将学到新增的ASP.NET Identity系统的重要信息。
第8章“Ajax”介绍ASP.NET MVC应用程序中的Ajax程序,并特别强调jQuery和jQuery插件。本章中,你将会学习到如何使用ASP.NET MVC的Ajax辅助方法,以及如何高效地应用jQuery验证系统。
第9章“路由”深入介绍用来管理如何将URL映射到控制器操作的路由机制。本章介绍了传统路由和新增的特性路由,展示了如何结合使用这两种路由,并解释了两种路由的适用场合。
第10章“NuGet”介绍NuGet包管理系统。通过本章内容,你将学习到如何将NuGet关联到ASP.NET MVC,如何安装NuGet以及如何使用NuGet来安装、更新和创建新包。
第11章“ASP.NET Web API”展示如何使用ASP.NET Web API创建HTTP服务。
第12章“应用AngularJS构建单页面应用程序”介绍如何将ASP.NET MVC技能和Web API技能与流行的AngularJS库结合起来使用,创建出单页面应用程序。另外还提供了一个有趣的“At The Movies”示例应用程序。
第13章“依赖注入”介绍依赖注入以及如何在应用程序中利用依赖注入。
第14章“单元测试”教你如何在ASP.NET应用程序中使用测试驱动开发,并提供编写高效测试的一些有益忠告。
第15章“扩展ASP.NET MVC”深入讲解ASP.NET MVC中的扩展点,并展示如何扩展MVC框架来满足你的具体需求。
第16章“高级主题”介绍一些高级主题,这些主题在阅读本书前15章之前讲解可能会使你感到吃力。本章涵盖Razor、基架系统、路由机制、模板和控制器的一些复杂应用。
第17章“ASP.NET MVC实战:构建NuGet.org网站” 结合学习的每个知识点来进行NuGet Gallery网站(http://nuget.org)案例研究。在这里,你会学习到,当使用ASP.NET MVC构建高性能网站时,高级ASP.NET工程师处理测试、成员资格、部署和数据迁移的方法。
经验丰富的读者请注意:
本书前6章的节奏有点慢。这些章节介绍了ASP.NET MVC中的一些基本概念,并假定读者没有多少相关经验。如果读者已经熟悉了MVC,可以快速浏览前几章。从第7章开始,讲解速度将会加快。
使用本书的条件
为使用ASP.NET MVC 5,你可能需要安装Visual Studio。可以使用Microsoft Visual Studio Express 2013的Web版或Visual Studio 2013的任何付费版本(如Visual Studio 2013 Professional)。Visual Studio 2013中包含了ASP.NET MVC 5。
也可以在Visual Studio 2012中使用ASP.NET MVC 5。ASP.NET MVC 5包含在Visual Studio 2012的ASP.NET和Web Tools更新中,下载地址如下:
第1章详细介绍了软件需求,并演示了如何在开发机和服务器上安装。
源代码
整本书中,你会注意到,当建议你安装NuGet包以尝试一些样例代码时,我们会放置如下标识:
Install-Package SomePackageName
NuGet是Outercurve Foundation为.NET和Visual Studio而编写的包管理器,后来被Microsoft公司整合到了ASP.NET MVC中。
我们不必再在Wrox网站
¥699.00
¥268.00
¥298.00
¥8.00
¥28.00