适用于 Visual Studio 2013 的 ASP.NET 和 Web 工具 2013.2 发行说明
作者:Microsoft
Installation Notes(SAP 支持说明 #1984787 - SUSE Linux Enterprise Server 12:安装说明)
适用于 Visual Studio 2013.2 的 ASP.NET 和 Web 工具捆绑在主安装程序中,并且可以作为其一部分下载Visual Studio 2013 Update 2。
文档
ASP.NET 网站提供了有关 Visual Studio 2013.2 ASP.NET 和 Web 工具的教程和其他信息。
软件要求
适用于 Visual Studio 2013.2 的 ASP.NET 和 Web 工具需要 Visual Studio 2013。
Visual Studio 2013.2 ASP.NET 和 Web 工具中的新增功能
以下部分介绍版本中引入的功能。
- 一个 ASP.NET 项目模板
- 在 IIS Express 上启动 Web 应用程序时支持 SSL
- Visual Studio Web 编辑器增强功能
- 浏览器链接
- 支持 Visual Studio 中的Azure App 服务 Web 应用
- 创建新 Web 项目时创建远程 Azure 资源
- Web 发布增强功能
- ASP.NET 基架
- NuGet 2.8.1
- ASP.NET Web 窗体
- ASP.NET MVC 5.1.2
- ASP.NET Web API 2.1.2
- ASP.NET 网页 3.1.2
- Entity Framework 6.1
- ASP.NET 标识 2.0.0
- Microsoft OWIN 组件
- ASP.NET SignalR 2.0.2
一个 ASP.NET 项目模板
- 更新 ASP.NET 项目模板以支持帐户确认和密码重置。
- 更新 ASP.NET Web API 模板以支持使用本地组织帐户进行身份验证。
- ASP.NET SPA 模板现在包含基于 MVC 和服务器端视图的身份验证。 该模板具有 WebAPI 控制器,只能由经过身份验证的用户访问。
在 IIS Express 上启动 Web 应用程序时支持 SSL
为了在 localhost 上浏览和调试 HTTPS 时消除安全警告,我们添加了一个对话框,允许 Internet Explorer 和 Chrome 信任自签名的 IIS 快速 SSL 证书。
例如,可以将 Web 项目属性设置为使用 SSL。 单击 F4 以显示属性对话框。 将“已启用 SSL”更改为 true。 复制 SSL URL。
将 Web 项目属性页 Web 选项卡设置为使用基于 HTTPS 的 URL( https://localhost:44300/
除非之前创建了 SSL 网站。)
按 Ctrl+F5 运行应用程序。 按照说明信任 IIS Express 生成的自签名证书。
阅读“ 安全警告 ”对话框,如果要安装表示 localhost 的证书,请单击“ 是 ”。
站点将显示在 IE 或 Chrome 中,而不显示浏览器中的证书警告。
Firefox 使用自己的证书存储,因此将显示警告。
Visual Studio Web 编辑器增强功能
新的 JSON 项目项和编辑器:我们已将 JSON 项目项和编辑器添加到 Visual Studio。 当前的 JSON 编辑器功能包括着色、语法验证、大括号完成、大纲显示、工具选项设置等。
IntelliSense 现在支持 JSON 架构 v3 和 v4。 有一个架构组合框,用于选择现有架构、编辑本地架构路径,或者只需将项目 JSON 文件拖放到其中即可获取相对路径。
新的 Sass (SCSS) 编辑器:我们在 VS2013 RTM 中添加了 LESS,现在我们有了 Sass 项目项和编辑器。 Sass 编辑器功能与 LESS 编辑器相当,包括着色、变量和 Mixins IntelliSense、注释/取消注释、快速信息、格式设置、语法验证、大纲显示、goto 定义、颜色选取器、工具选项设置等。
HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器: VS 2013 在 Web 窗体页面之外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个可理解“.”的无对话框流畅的键入选取器。 并相应地筛选 img 标记和链接的文件列表。
通过添加更多功能更新 LESS 编辑器
淘汰 Intellisense 升级:我们添加了 VS intelliSense 的非标准 KnockOut 语法,“ko-vs-editor viewModel:”语法。 它可用于使用表单中的注释绑定到页面上的多个视图模型:
我们还添加了对嵌套 ViewModel IntelliSense 的支持,因此你可以深入了解 ViewModel 上的深层嵌套对象。
<div data-bind="text: foo.bar.baz.etc" />
显示的 IntelliSense 是 JavaScript 对象的完整 IntelliSense。
HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器:VS 2013 在 Web 窗体页面之外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个可理解“.”的无对话框流畅的键入选取器。 并相应地筛选 img 标记和链接的文件列表。
浏览器链接
- 浏览器链接现在支持 HTTPS 连接,并且只要浏览器信任证书,就会在仪表板中列出该连接。
- 静态 HTML 源映射
- SPA 支持映射数据
- 自动更新映射数据
支持 Visual Studio 中的Azure App 服务 Web 应用
- 支持 Azure 登录。
- Web 应用的远程调试和远程视图:我们现在支持在服务器资源管理器中Azure App 服务 Web 应用内容文件的远程视图和 Web 应用内容文件的远程调试。
创建新 Web 项目时创建远程 Azure 资源
我们在新的 Web 应用程序对话框中添加了 Azure “创建远程资源” 复选框。 通过选择它,你将能够集成创建新 Web 应用程序、设置用于测试的 Azure 发布网站以及通过几个简单步骤创建发布配置文件的体验。
Web 发布增强功能
- 改善发布用户体验。
ASP.NET 基架
- 枚举支持: 如果模型使用的是枚举,则 MVC Scaffolder 将为 Enum 生成下拉列表。 这使用 MVC 中的枚举帮助程序。
- Bootstrap 支持:更新了 MVC 基架中的 EditorFor 模板,以便它们使用 Bootstrap 类。
- 包支持:MVC 和 Web API 基架将为 MVC 和 Web API 添加 5.1 个包
以下屏幕截图演示基架模型。
模型代码:
编译模型代码,右键单击并选择“添加新基架项”。
使用 Entity Framework 选择具有视图的 MVC5 控制器:
使用模型添加控制器 :
检查生成的代码,例如 Views/WeekdayModels/Edit.cshtml 包含
@Html.EnumDropDownListFor
:运行页面以查看生成的枚举组合框,请注意,如果某个值可以为 null,则可以为组合框选择空字符串。 例如,“ 创建 ”页显示以下内容:
NuGet 2.8.1
NuGet 2.8.1 RTM 将于 2014 年 4 月发布。 以下是发行说明中的突出要点,但请查看 完整的发行说明 ,了解有关这些更改的详细信息。
目标 Windows Phone 8.1 应用程序:NuGet 2.8.1 现在支持使用目标框架名字对象“WindowsPhoneApp”、“WPA”、“WindowsPhoneApp81”和“WPA81”面向 Windows Phone 8.1 应用程序。
依赖项的修补程序解决方法:解析包依赖项时,NuGet 以前已实施一种策略,即选择满足包依赖项的最低主包和次要包版本。 但与主要版本和次要版本不同,补丁版本始终被解析为最高版本。 尽管此行为意图明显,但它为安装具有依赖项的包造成了不确定性。
DependencyVersion 开关:虽然 NuGet 2.8 更改 了解析依赖项的默认 行为,但它还会通过包管理器控制台中的 -DependencyVersion 开关添加对依赖项解析过程的更精确的控制。 此开关允许将依赖项解析为最低版本(默认行为)、潜在的最高版本或是最高次要版本或补丁版本。 此开关仅适用于 powershell 命令中的 install-package。
DependencyVersion 属性:除了上面详述的 -DependencyVersion 开关外,NuGet 还允许在 nuget.config 文件中设置定义默认值的新属性(如果未在调用 install-package 中指定 -DependencyVersion 开关)。 对于任意安装包操作,NuGet 包管理器对话框也会采用此值。 若要设置此值,请将下面的属性添加到 nuget.config 文件:
<config> <add key="dependencyversion" value="Highest" /> </config>
使用 -WhatIf 预览 NuGet 操作:某些 NuGet 包可以具有深度依赖项关系图,因此,在安装、卸载或更新操作期间,它非常有用,以便首先查看会发生什么情况。 NuGet 2.8 添加了标准 PowerShell -if switch to the install-package, uninstall-package, and update-package commands to enable visualizing the entire closure of packages to the command will be applied to.
降级包:安装包的预发行版并不罕见,以便调查新功能,然后决定回滚到最后一个稳定版本。 在 NuGet 2.8 之前,这是一个涉及卸载预发行包及其依赖项,然后安装旧版本的多步骤流程。 但对于 NuGet 2.8,update-package 现在会将整个包关闭(即,包的依赖项树)回滚到前一版本。
开发依赖项:许多不同类型的功能都可以作为 NuGet 包提供,包括用于优化开发过程的工具。 这些组件虽然有助于开发新包,但在以后发布包时,不应将其视为新包的依赖项。 NuGet 2.8 使包能够将 .nuspec 文件中的自身标识为 developmentDependency。 安装后,此元数据也会添加到安装包的项目的 packages.config 文件中。 在 nuget.exe 包期间,当针对 NuGet 依赖项分析该 packages.config 文件时,它将排除标记为开发依赖项的依赖项。
适用于不同平台的单个 packages.config 文件:为多个目标平台开发应用程序时,对于每个相应的生成环境,通常有不同的项目文件。 慈爱,在不同项目文件中使用不同 NuGet 包也很常见,因为包对不同平台提供不同级别的支持。 NuGet 2.8 通过为不同的特定于平台的项目文件创建不同的 packages.config 文件,为此方案提供了改进的支持。
回退到本地缓存:虽然 NuGet 包通常从远程库(例如使用网络连接的 NuGet 库 )使用,但有许多情况下客户端未连接。 如果没有网络连接,NuGet 客户端则无法成功安装包,即使这些包已在本地 NuGet 缓存中的客户端计算机上。 NuGet 2.8 将自动缓存回退添加到包管理器控制台。
缓存回退功能无需任何特定命令参数。 此外,缓存回退目前仅适用于包管理器控制台,且该行为当前在包管理器对话框中无效。
Bug 修复:进行的主要 bug 修复之一是更新包 -重新安装命令的性能改进。
除这些功能和上述性能修复之外,此版本的 NuGet 还包括很多其他 bug 修复。 此版本共计解决了 181 个问题。 有关 NuGet 2.8 中修复的工作项的完整列表,请查看此版本的 NuGet 问题跟踪器。
ASP.NET Web 窗体
- Web 窗体模板现在演示如何为 ASP.NET 标识执行帐户确认和密码重置。
- 实体数据源控件和 Entity Framework 6 的动态数据提供程序。 有关详细信息,请参阅以下 MSDN 博客: Entity Framework 6 的动态数据提供程序和 EntityDataSource 控件。
ASP.NET MVC 5.1.2
ASP.NET Web API 2.1.2
ASP.NET 网页 3.1.2
Entity Framework 6.1
实体框架已更新为版本 6.1,用于运行时和工具。 Entity Framework (EF) 6.1 是对 Entity Framework 6 的次要更新,包括许多 bug 修复和新功能。 有关 EF6.1 的详细信息,包括指向新功能文档的链接,请参阅 Entity Framework 版本历史记录。 此版本中的新功能包括:
- 工具整合功能提供了一种创建新 EF 模型的一致方式。 此功能扩展了 ADO.NET 实体数据模型向导,以支持创建 Code First 模型,包括从现有数据库进行反向工程。 这些功能以前在 EF Power Tools 中以 beta 版本质量提供。
- 处理事务提交失败 提供了新的 System.Data.Entity.Infrastructure.CommitFailureHandler ,它利用新引入的功能来截获事务操作。 CommitFailureHandler 允许在提交事务时从连接故障中自动恢复。
- IndexAttribute 允许通过在 Code First 模型中放置属性(或属性)来指定索引。 然后,Code First 将在数据库中创建相应的索引。
- 公共映射 API 提供对有关 EF 如何将属性和类型映射到数据库中的列和表的信息的访问。 在过去的版本中,此 API 是内部 API。
- 能够通过 App/Web.config 文件配置拦截器(允许添加拦截器而无需重新编译应用程序)。
- DatabaseLogger 是一个新的拦截器,可以轻松地将所有数据库操作记录到文件。 将该功能和前一功能结合使用,可以轻松为已部署的应用程序打开数据库操作日志记录,而无需重新编译。
- 迁移模型更改检测 已得到改进,使基架迁移更加准确;更改检测过程的性能也得到了很大的增强。
- 性能改进包括减少初始化期间的数据库操作、优化 LINQ 查询中的 NULL 相等比较、在更多方案中更快地生成视图(模型创建),以及更有效地实现具有多个关联的跟踪实体。
ASP.NET 标识 2.0.0
双重身份验证:ASP.NET 标识现在支持双重身份验证。 在密码泄露的情况下,双重身份验证为用户帐户提供额外的安全层。 此外,还有针对两个因素代码的暴力攻击的保护。
帐户锁定: 如果用户输入密码或双因素代码不正确,则提供锁定用户的方法。 可以配置用户无效尝试次数和时间跨度。 开发人员可以根据需要关闭某些用户帐户的帐户锁定。
帐户确认: ASP.NET 标识系统现在支持帐户确认。 在当今大多数网站中,这是一个相当常见的方案,当你在网站上注册新帐户时,你需要先确认电子邮件,然后才能在网站中执行任何操作。 电子邮件确认非常有用,因为它可防止创建虚假帐户。 如果将电子邮件用作与网站用户(如论坛网站、银行、电子商务或社交网站)通信的方法,这非常有用。
密码重置:密码重置是一项功能, 如果用户忘记了密码,用户可以重置其密码。
安全戳(随处注销): 支持在用户更改其密码或任何其他安全相关信息(例如删除关联的登录名(如 Facebook、Google、Microsoft 帐户等)时重新生成用户的安全令牌的方法。 这需要确保使用旧密码生成的任何令牌都失效。 在示例项目中,如果更改用户的密码,则会为用户生成新令牌,并且任何以前的令牌都失效。 此功能为应用程序提供了额外的安全层,因为当你更改密码时,你将从登录到此应用程序的任何地方(所有其他浏览器)注销。
使主密钥的类型对用户和角色可扩展:在 ASP.NET 标识 1.0 中,表“用户”和“角色”的主键类型为字符串。 这意味着,使用实体框架将 ASP.NET 标识系统保存在 SQL Server 中时,我们使用的是 nvarchar。 有关 Stack Overflow 上的此默认实现以及基于传入反馈的许多讨论。 我们提供了一个扩展性挂钩,可在其中指定应为用户和角色表的主键。 如果要迁移应用程序,并且应用程序存储 UserId 是 GUID 或 ints,则此扩展性挂钩特别有用。
支持用户和角色上的 IQueryable:在 UsersStore 和 RolesStore 上添加了对 IQueryable 的支持,可以轻松获取用户和角色的列表。
通过 UserManager 支持 Delete 操作
对 UserName 编制索引:在 ASP.NET 标识实体框架实现中,我们使用 EF 6.1.0 中的新 IndexAttribute 在用户名上添加了唯一索引。 这可确保用户名始终是唯一的,并且没有争用条件,最终会出现重复的用户名。
增强的密码验证程序: ASP.NET Identity 1.0 中随附的密码验证程序是一个相当基本的密码验证程序,仅验证最小长度。 有一个新的密码验证程序,可让你更好地控制密码的复杂性。 请注意,即使打开此密码中的所有设置,我们也建议为用户帐户启用双重身份验证。
IdentityFactory 中间件/CreatePerOwinContext:
- 用户管理器:可以使用工厂实现从 OWIN 上下文中获取 UserManager 实例。 此模式类似于从 OWIN 上下文获取 SignIn 和 SignOut 的 AuthenticationManager。 这是获取应用程序每个请求的 UserManager 实例的建议方法。
- DbContextFactory:ASP.NET 标识使用 Entity Framework 在 SQL Server 中持久保存标识系统。 为此,标识系统具有对 ApplicationDbContext 的引用。 DbContextFactory 中间件根据可在应用程序中使用的请求返回 ApplicationDbContext 实例。
ASP.NET 标识示例 NuGet 包:示例 NuGet 包可以更轻松地安装和运行用于 ASP.NET 标识的示例,并遵循最佳做法。 这是 ASP.NET MVC 应用程序的示例。 在生产环境中部署此代码之前,请修改代码以适合应用程序。 示例应安装在空 ASP.NET 应用程序中。 有关程序包的详细信息,请转到以下博客文章: 宣布发布 ASP.NET Identity 2.0.0 的 RTM
Microsoft OWIN 组件
此版本中修复了许多 bug。
ASP.NET SignalR 2.0.2
此版本中修复了许多 bug。 有关更多详细信息,请参阅 2.0.2 版本的 发行说明。