内容简介
使用MVC 5创建动态的、数据驱动的网站
《ASP.NET MVC 5高级编程(第5版)(.NET开发经典名著)》作为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扩展
◆ 提供了分步骤指导、真实案例以及众多代码示例,帮助读者从入门阶段进阶
作者简介
JonGalloway,是Microsoft的一位专注于ASP.NETMVC的技术传道者。
BradWilson,拥有超过20年的专业软件开发经验,10年的Web开发经验。
K.ScottAllen,是OdeToCode公司的创始人,为全球客户提供定制开发、顾问和指导服务。
DavidMatson,是Microsoft的一名软件开发人员。他是MVC5和WebAPI2产品团队的一员。
目录
第1章入门
1.1ASP.NETMVC简介
1.1.1ASP.NETMVC如何适应ASP.NET
1.1.2MVC模式简介
1.1.3MVC在Web框架中的应用
1.1.4ASP.NETMVC5的发展历程
1.1.5ASP.NETMVC4概述
1.1.6开源发布
1.2ASP.NETMVC5概述
1.2.1OneASP.NET
1.2.2新的Web项目体验
1.2.3ASP.NETIdentity
1.2.4Bootstrap模板
1.2.5特性路由
1.2.6ASP.NET基架
1.2.7身份验证过滤器
1.2.8过滤器重写
1.3安装MVC5和创建应用程序
1.3.1ASP.NETMVC5的软件需求
1.3.2安装ASP.NETMVC5
1.3.3创建ASP.NETMVC5应用程序
1.3.4NewASP.NETProject对话框
1.4ASP.NETMVC应用程序的结构
1.4.1ASP.NETMVC和约定
1.4.2约定优于配置
1.4.3约定简化通信
1.5小结
第2章控制器
2.1控制器的角色
2.2示例应用程序:MVCMusicStore
2.3控制器基础
2.3.1简单示例:HomeController
2.3.2创建
第一个控制器
2.3.3控制器操作中的参数
2.4小结
第3章视图
3.1视图的作用
3.2视图的基础知识
3.3理解视图约定
3.4强类型视图
3.4.1ViewBag的不足
3.4.2理解ViewBag、ViewData和ViewDataDictionary
3.5视图模型
3.6添加视图
3.7Razor视图引擎
3.7.1Razor的概念
3.7.2代码表达式
3.7.3HTML编码
3.7.4代码块
3.7.5Razor语法示例
3.7.6布局
3.7.7ViewStart
3.8指定部分视图
3.9小结
第4章模型
4.1为MVCMusicStore建模
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.1DefaultModelBinder
4.4.2显式模型绑定
4.5小结
第5章表单和HTML辅助方法
5.1表单的使用
5.1.1action和method特性
5.1.2GET方法还是POST方法
5.2HTML辅助方法
5.2.1自动编码
5.2.2辅助方法的使用
5.2.3HTML辅助方法的工作原理
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.1Html.Hidden
5.3.2Html.Password
5.3.3Html.RadioButton
5.3.4Html.CheckBox
5.4渲染辅助方法
5.4.1Html.ActionLink和Html.RouteLink
5.4.2URL辅助方法
5.4.3Html.Partial和Html.RenderPartial
5.4.4Html.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.2IValidatableObject
6.3显示和编辑注解
6.3.1Display
6.3.2ScaffoldColumn
6.3.3DisplayFormat
6.3.4ReadOnly
6.3.5DataType
6.3.6UIHint
6.3.7HiddenInput
6.4小结
第7章成员资格、授权和安全性
7.1安全性:无趣、但极其重要
7.2使用Authorize特性登录
7.2.1保护控制器操作
7.2.2Authorize特性在表单身份验证和AccountController控制器中的用法
7.2.3WindowsAuthentication
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.6Web应用程序中的安全向量
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
第9章路由
第10章NuGet
第11章ASP.NETWebAPI
第12章应用AngularJS构建单页面应用程序
第13章依赖注入
第14章单元测试
第15章扩展ASP.NETMVC
第16章高级主题
第17章ASP.NETMVC实战:构建NuGet.org网站
17.11小结
附录AASP.NETMVC5.1
精彩书摘
2.ASP.NETMVC2概述
与ASP.NETMVC1发布时隔一年,ASP.NETMVC2于2010年3月发布。ASP.NETMVC2的部分主要特点如下:
●带有自定义模板的UI辅助程序
●在客户端和服务器端基于特性的模型验证
●强类型HTML辅助程序
●改善的VisualStudio开发工具
根据应用ASP.NETMVC1开发各种应用程序的开发人员的反馈意见,ASP.NETMVC2中增强了许多API的功能以增强其专业性,比如:
●支持将大型应用程序划分为域
●支持异步控制器
●使用Html.RenderAction支持渲染网页或网站的某一部分
●许多新的辅助函数、实用工具和API增强
ASP.NETMVC2发布的一个重要先例是很少有重大改动,这是ASP.NETMVC结构化设计的一个证明,这样就可以实现在核心不变的情况下进行大量的扩展。
3.ASP.NETMVC3概述
在WebMatrix发布的推动下,ASP.NETMVC3于ASP.NETMVC2发布之后的第10个月推出。ASP.NETMVC3的主要特征如下:
●支持Razor视图引擎
●支持.NET4数据注解
●改进了模型验证
●提供更强的控制和更大的灵活性,支持依赖项解析(DependencyResolution)和全局操作过滤器(GlobalActionFilter)
●丰富的JavaScript支持,其中包括非侵入式JavaScript、jQuery验证和JSON绑定
●支持NuGet,可以用来发布软件,管理整个平台的依赖
自10余年前ASP.NET1.0发布以来,Razor是在渲染HTML方面的第一个重大更新。在ASP.NETMVC1和ASP.NETMVC2中默认使用的视图引擎普遍称为WebForms视图引擎(WebFormsViewEngine),因为它和WebForms使用了同样的ASPX/ASCX/MASTER文件和语法。但是它的设计目标是支持在图形编辑器中的编辑控件。下面是在WebForms页面中这种语法的一个示例:
<%@PageLanguage="C#"
MasterPageFile="~/Views/Shared/Site.Master"Inherits=
"System.Web.Mvc.ViewPage"
%>
BrowseAlbums
<%:Model.Genre.Name%>Albums
<%foreach(varalbuminModel.Albums){%>
<%:album.Title%>
<%:album.Title%>
<%}%>
Razor被专门设计成视图引擎的语法。它有一个主要的作用:集中生成HTML代码模板。下面展示如何应用Razor生成同样的标记:
@modelMvcMusicStore.Models.Genre
@{ViewBag.Title="BrowseAlbums";}
@Model.NameAlbums
@foreach(varalbuminModel.Albums)
{
@album.Title
@album.Title
}
Razor语法易于输入和阅读。Razor不像WebForms视图引擎那样具有类似于XML的繁杂语法规则。第3章将详细讨论Razor。
……
前言/序言
对于一名ASP.NET开发人员来说,这是一个伟大的时刻!
无论是对于已经拥有ASP.NET多年开发经验的开发人员,还是对于刚刚入门的初学者,现在都是深入学习ASP.NETMVC的绝佳时机。ASP.NETMVC从一开始就有很多乐趣,但最近两个版本添加了许多特性,使整个开发过程变得非常愉悦。
ASP.NETMVC3带来了像Razor视图引擎这样的新特性,与NuGet包管理系统和jQuery内置整合来简化Ajax开发。 ASP.NETMVC5继续这一趋势,添加了更新的可视化设计、移动Web支持、使用ASP.NETWebAPI的HTTP服务、内置支持OAuth与流 行网站的整合等。这样我们就可以快速地开始使用全功能Web应用程序。
这也不是简单地利用拖放功能提高短期生产率。这一切都建立在一个基于模式的Web框架上,当需要时,这个框架可帮助我们控制应用程序的每个方面。
加入我们会踏上有趣翔实的ASP.NETMVC5之旅!
本书读者对象
本书由浅入深地介绍ASP.NETMVC,是一本优秀的ASP.NETMVC教程。
如果刚刚接触ASP.NETMVC,本书首先会帮助学习MVC概念,然后演示如何在应用代码示例中应用这些概念。本书作者已经指导成千上万名开发人员开始学习ASP.NETMVC,指导怎样安排结构思路,以便快速创建,入门开发。
我们知道许多读者都熟悉ASP.NETWebForms,在一些上下文中,我们介绍它们之间的异同来帮助理解它们之间的关系。事实 上,ASP.NETMVC5不是ASP.NETWebForms的替换品。许多Web开发人员也使用其他Web框架,比如RubyonRails、 Node.js、Django,一些PHP框架等,这些框架都适用于MVC(模型-视图-控制器,Model-View-Controller)应用模 式。如果你属于这类开发人员,或者只是好奇,本书就适合你。
我们也付出了很大努力,确保本书能够为拥有ASP.NETMVC经验的开发人员提 供一些帮助。在本书的各个章节,我们介绍了组件设计原理,以及如何最好地使用它们。我们添加了新的内容,包括大大扩展了介绍路由的一章,以介绍 ASP.NETMVC5中新增的特性路由功能。我们还利用从NuGetGallery开发团队那里直接得到的知识,更新了最后一章的 NuGetGallery案例分析,解释了NuGet开发团队如何构建和开发真实世界中高容量的ASP.NETMVC网站。另 外,K.ScottAllen还新撰写了一章,解释了如何使用AngularJS构建单页面应用程序。
本书组织结构
本书分为两大部分,每部分由几个章节构成。前6章主要介绍了MVC模式,以及ASP.NETMVC是如何实现MVC模式的。
第1章"入门"帮助你开始进行ASP.NETMVC5开发。首先介绍了ASP.NETMVC的概念,然后解释ASP.NETMVC5如何顺应以前的发布版本。最后,在确保正确安装软件之后,帮助你开始创建你的第一个ASP.NETMVC5应用程序。
第2章"控制器"讲解控制器和操作的基础内容。你开始编写一些基本的"helloworld"示例,然后创建从URL中提取信息并在屏幕上显示应用程序。
第3章"视图"介绍如何从控制器操作中使用视图模板控制输出的可视化表示。此外,还会全面地介绍Razor视图引擎,其中包括帮助组织和维护的语法和特征。
第4章"模型"帮助你学习如何使用模型在控制器和视图之间传递信息,以及如何使用EntityFramework的CodeFirst开发集成数据库和模型。
第5章"表单和HTML辅助方法"深入介绍编辑情形,解释ASP.NETMVC处理表单的方式。你将从本章中学习到如何使用HTML辅助方法精简视图。
第6章"数据注解和验证"介绍如何使用特性定义模型显示、编辑和验证的规则。
接下来的10章以前面的内容为基础,介绍了一些更加高级的概念和应用程序。
第7章"成员资格、授权和安全性"介绍如何确保ASP.NETMVC应用程序安全,并指出常见的安全陷阱以及避开这些陷阱的方法。此外,你还会学习到如 何利用ASP.NETMVC应用程序中的ASP.NET成员资格和授权特性来控制访问权限。另外还将学到新增的ASP.NETIdentity系统的重要 信息。
第8章"Ajax"介绍ASP.NETMVC应用程序中的Ajax程序,并特别强调jQuery和jQuery插件。本章中,你将会学习到如何使用ASP.NETMVC的Ajax辅助方法,以及如何高效地应用jQuery验证系统。
第9章"路由"深入介绍用来管理如何将URL映射到控制器操作的路由机制。本章介绍了传统路由和新增的特性路由,展示了如何结合使用这两种路由,并解释了两种路由的适用场合。
第10章"NuGet"介绍NuGet包管理系统。通过本章内容,你将学习到如何将NuGet关联到ASP.NETMVC,如何安装NuGet以及如何使用NuGet来安装、更新和创建新包。
第11章"ASP.NETWebAPI"展示如何使用ASP.NETWebAPI创建HTTP服务。
第12章"应用AngularJS构建单页面应用程序"介绍如何将ASP.NETMVC技能和WebAPI技能与流行的AngularJS库结合起来使用,创建出单页面应用程序。另外还提供了一个有趣的"AtTheMovies"示例应用程序。
第13章"依赖注入"介绍依赖注入以及如何在应用程序中利用依赖注入。
第14章"单元测试"教你如何在ASP.NET应用程序中使用测试驱动开发,并提供编写高效测试的一些有益忠告。
第15章"扩展ASP.NETMVC"深入讲解ASP.NETMVC中的扩展点,并展示如何扩展MVC框架来满足你的具体需求。
第16章"高级主题"介绍一些高级主题,这些主题在阅读本书前15章之前讲解可能会使你感到吃力。本章涵盖Razor、基架系统、路由机制、模板和控制器的一些复杂应用。
第17章"ASP.NETMVC实战:构建NuGet.org网站"结合学习的每个知识点来进行NuGetGallery网站 (http://nuget.org)案例研究。在这里,你会学习到,当使用ASP.NETMVC构建高性能网站时,高级ASP.NET工程师处理测试、 成员资格、部署和数据迁移的方法。
经验丰富的读者请注意:
本书前6章的节奏有点慢。这些章节介绍了ASP.NETMVC中的一些基本概念,并假定读者没有多少相关经验。如果读者已经熟悉了MVC,可以快速浏览前几章。从第7章开始,讲解速度将会加快。
使用本书的条件
为使用ASP.NETMVC5,你可能需要安装VisualStudio。可以使用MicrosoftVisualStudioExpress2013 的Web版或VisualStudio2013的任何付费版本(如VisualStudio2013Professional)。 VisualStudio2013中包含了ASP.NETMVC5。可以从以下网址下载VisualStudio和 VisualStudioExpress:
●VisualStudio
●VisualStudioExpress
也可以在VisualStudio2012中使用ASP.NETMVC5。ASP.NETMVC5包含在VisualStudio2012的ASP.NET和WebTools更新中,下载地址如下:
●ASP.NETandWebTools2013.2forVisualStudio201 第1章详细介绍了软件需求,并演示了如何在开发机和服务器上
ASP.NET MVC 5高级编程(第5版)(.NET开发经典名著) epub pdf mobi txt 电子书 下载 2024
ASP.NET MVC 5高级编程(第5版)(.NET开发经典名著) 下载 epub mobi pdf txt 电子书 2024