适用于 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 项目模板

  • 更新 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。

已启用 SSL 的属性

将 Web 项目属性页 Web 选项卡设置为使用基于 HTTPS 的 URL( https://localhost:44300/ 除非之前创建了 SSL 网站。)

设置项目 URL (HTTPS)

按 Ctrl+F5 运行应用程序。 按照说明信任 IIS Express 生成的自签名证书。

SSL 警告

阅读“ 安全警告 ”对话框,如果要安装表示 localhost 的证书,请单击“ ”。

安全警告

站点将显示在 IE 或 Chrome 中,而不显示浏览器中的证书警告。

不带警告的 HTTPS 页

Firefox 使用自己的证书存储,因此将显示警告。

Visual Studio Web 编辑器增强功能

  • 新的 JSON 项目项和编辑器:我们已将 JSON 项目项和编辑器添加到 Visual Studio。 当前的 JSON 编辑器功能包括着色、语法验证、大括号完成、大纲显示、工具选项设置等。

    JSON 编辑器

    IntelliSense 现在支持 JSON 架构 v3 和 v4。 有一个架构组合框,用于选择现有架构、编辑本地架构路径,或者只需将项目 JSON 文件拖放到其中即可获取相对路径。

    JSON Intellisense JSON 架构编辑器

  • 新的 Sass (SCSS) 编辑器:我们在 VS2013 RTM 中添加了 LESS,现在我们有了 Sass 项目项和编辑器。 Sass 编辑器功能与 LESS 编辑器相当,包括着色、变量和 Mixins IntelliSense、注释/取消注释、快速信息、格式设置、语法验证、大纲显示、goto 定义、颜色选取器、工具选项设置等。

    添加新项:SCSS 样式表 样式表编辑器

  • HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器: VS 2013 在 Web 窗体页面之外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个可理解“.”的无对话框流畅的键入选取器。 并相应地筛选 img 标记和链接的文件列表。

    新无对话框的 Fluent 键入的屏幕截图,即选择器可适当筛选文件列表。示例演示图像链接。新无对话框的 Fluent 键入的屏幕截图,即选择器可适当筛选文件列表。示例演示 h t m l 链接。适用于 c s 编辑器的新 Picker 的屏幕截图,该编辑器可适当筛选 i m g 标记和链接的文件列表。

  • 通过添加更多功能更新 LESS 编辑器

  • 淘汰 Intellisense 升级:我们添加了 VS intelliSense 的非标准 KnockOut 语法,“ko-vs-editor viewModel:”语法。 它可用于使用表单中的注释绑定到页面上的多个视图模型:

    淘汰 Intellisense

    我们还添加了对嵌套 ViewModel IntelliSense 的支持,因此你可以深入了解 ViewModel 上的深层嵌套对象。

    <div data-bind="text: foo.bar.baz.etc" />

    显示的 IntelliSense 是 JavaScript 对象的完整 IntelliSense。

    显示完整 JavaScript 对象的 Intellisense

  • HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器:VS 2013 在 Web 窗体页面之外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个可理解“.”的无对话框流畅的键入选取器。 并相应地筛选 img 标记和链接的文件列表。

    新的无对话框、流畅键入的屏幕截图,你为 l Picker 筛选适用于 i m g 标记和链接的文件列表。显示 h t m l 链接的新无对话框流畅键入的屏幕截图,这是筛选文件列表的 l 选取器。适用于 c s 编辑器的新无对话框的 Fluent 键入 Picker 的屏幕截图,这些编辑器可适当筛选 i m g 标记和链接的文件列表。

  • 浏览器链接现在支持 HTTPS 连接,并且只要浏览器信任证书,就会在仪表板中列出该连接。
  • 静态 HTML 源映射
  • SPA 支持映射数据
  • 自动更新映射数据

支持 Visual Studio 中的Azure App 服务 Web 应用

创建新 Web 项目时创建远程 Azure 资源

我们在新的 Web 应用程序对话框中添加了 Azure “创建远程资源” 复选框。 通过选择它,你将能够集成创建新 Web 应用程序、设置用于测试的 Azure 发布网站以及通过几个简单步骤创建发布配置文件的体验。

使用 Azure 资源新建项目发布到 Azure

Web 发布增强功能

  • 改善发布用户体验。

ASP.NET 基架

  • 枚举支持: 如果模型使用的是枚举,则 MVC Scaffolder 将为 Enum 生成下拉列表。 这使用 MVC 中的枚举帮助程序。
  • Bootstrap 支持:更新了 MVC 基架中的 EditorFor 模板,以便它们使用 Bootstrap 类。
  • 包支持:MVC 和 Web API 基架将为 MVC 和 Web API 添加 5.1 个包

以下屏幕截图演示基架模型。

  • 模型代码:

    模型代码

  • 编译模型代码,右键单击并选择“添加新基架项”。

    添加新基架项

  • 使用 Entity Framework 选择具有视图的 MVC5 控制器:

    使用视图添加新的 MVC5 控制器

  • 使用模型添加控制器

    “添加控制器”对话框的屏幕截图,其中选择了“模型”类,并突出显示了“数据上下文类”字段。

  • 检查生成的代码,例如 Views/WeekdayModels/Edit.cshtml 包含 @Html.EnumDropDownListFor包含 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 版本的 发行说明。