ASP.NET 和 Web 工具 2013.2 for Visual Studio 2013 发行说明

Microsoft

安装说明

Visual Studio 2013.2 的 ASP.NET 和 Web 工具捆绑在 main 安装程序中,可以作为 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 Project 模板以支持帐户确认和密码重置。
  • 更新 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 Enabled 属性

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

 (HTTPS) 设置项目 URL

按 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 IntellisenseJSON 架构编辑器

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

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

  • HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器:VS 2013 附带Web Forms页外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个无对话框的流畅键入选取器,可理解“..” 和 适当筛选 img 标记和链接的文件列表。

    新无对话框、流畅键入的屏幕截图,你正在正确筛选文件列表的选取器。示例演示了图像链接。新无对话框、流畅键入的屏幕截图,你正在正确筛选文件列表的选取器。示例演示了 h t m l 链接。适用于 c s 编辑器的新选取器屏幕截图,该编辑器可适当筛选 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 Forms页面外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个无对话框的流畅键入选取器,可理解“..” 和 适当筛选 img 标记和链接的文件列表。

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

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

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

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

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

将 Azure 资源发布到 Azure 的新项目

Web 发布增强功能

  • 改善用于发布的用户体验。

ASP.NET 基架

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

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

  • 模型代码:

    模型代码

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

    添加新基架项

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

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

  • 使用模型添加控制器

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

  • 检查生成的代码,例如 Views/WeekdayModels/Edit.cshtml contains @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 还允许在调用 install-package 时未指定 -DependencyVersion 开关,在定义默认值的 nuget.config 文件中设置新属性。 对于任何安装包操作,NuGet 包管理器对话框也会遵循此值。 若要设置此值,请将以下 属性添加到 nuget.config 文件:

    <config> <add key="dependencyversion" value="Highest" /> </config>

  • 使用 -WhatIf 预览 NuGet 操作:某些 NuGet 包可以具有深层依赖项关系图,因此,在安装、卸载或更新操作期间,可以先了解会发生什么情况。 NuGet 2.8 添加了标准 PowerShell -if 切换到 install-package、uninstall-package 和 update-package 命令,以可视化将应用该命令的包的整个关闭。

  • 降级包:安装包的预发行版以调查新功能,然后决定回滚到上一个稳定版本的情况并不少见。 在 NuGet 2.8 之前,这是卸载预发行版包及其依赖项,然后安装早期版本的多步骤过程。 但是,在 NuGet 2.8 中,update-package 现在将回滚整个包关闭 (例如包的依赖项树) 到以前的版本。

  • 开发依赖项:许多不同类型的功能可以作为 NuGet 包提供,包括用于优化开发过程的工具。 这些组件虽然有助于开发新包,但以后发布时不应将其视为新包的依赖项。 NuGet 2.8 使包能够在 .nuspec 文件中将自身标识为 developmentDependency。 安装后,此元数据还将添加到安装包的项目的 packages.config 文件中。 稍后在nuget.exe包期间分析该packages.config文件以查找 NuGet 依赖项时,它将排除那些标记为开发依赖项的依赖项。

  • 适用于不同平台的单个packages.config文件:在为多个目标平台开发应用程序时,通常为每个相应的生成环境使用不同的项目文件。 在不同的项目文件中使用不同的 NuGet 包也很常见,因为包对不同平台的支持级别不同。 NuGet 2.8 通过为不同的特定于平台的项目文件创建不同的packages.config文件,改进了对此方案的支持。

  • 回退到本地缓存:虽然 NuGet 包通常通过网络连接从远程库(如 NuGet 库 )使用,但在许多情况下,客户端未连接。 如果没有网络连接,NuGet 客户端将无法成功安装包,即使这些包已位于本地 NuGet 缓存中的客户端计算机上也是如此。 NuGet 2.8 将自动缓存回退添加到包管理器控制台。

    缓存回退功能不需要任何特定的命令参数。 此外,缓存回退目前仅在包管理器控制台中有效 - 该行为当前在包管理器对话框中不起作用。

  • Bug 修复:主要 bug 修复之一是 update-package -reinstall 命令中的性能改进。

    除了这些功能和上述性能修补程序外,此版本的 NuGet 还包括许多其他 bug 修复。 版本中总共解决了 181 个问题。 有关 NuGet 2.8 中修复的工作项的完整列表,请查看此版本的 NuGet 问题跟踪器。

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

实体框架已更新到版本 6.1,适用于运行时和工具。 Entity Framework (EF) 6.1 是 Entity Framework 6 的次要更新,包含许多 bug 修复和新功能。 有关 EF6.1 的详细信息,包括新功能的文档链接,请参阅 实体框架版本历史记录。 此版本中的新功能包括:

  • 工具整合功能提供了一种创建新 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 Identity 2.0.0

  • 双因素身份验证:ASP.NET 标识现在支持双重身份验证。 双因素身份验证在密码泄露的情况下为用户帐户提供额外的安全层。 此外,还可以保护针对两个因素代码的暴力攻击。

  • 帐户锁定: 提供一种在用户输入密码或双因素代码不正确时锁定用户的方法。 可以配置锁定用户的无效尝试次数和时间跨度。 如果需要,开发人员可以选择关闭某些用户帐户的帐户锁定。

  • 帐户确认: ASP.NET 标识系统现在支持帐户确认。 在当今大多数网站中,这是一种相当常见的情况,当你在网站上注册新帐户时,你需要先确认电子邮件,然后才能在网站中执行任何操作。 Email确认非常有用,因为它可以防止创建虚假帐户。 如果使用电子邮件作为与网站用户(如论坛网站、银行、电子商务或社交网站)进行通信的方法,这非常有用。

  • 密码重置: 密码重置是一项功能,用户可以在忘记密码时重置其密码。

  • 安全标记 () 处注销: 支持在用户更改密码或任何其他安全相关信息(如删除关联的登录 ((如 Facebook、Google、Microsoft 帐户等)) 的情况下为用户重新生成安全令牌的方法。 这是为了确保使用旧密码生成的任何令牌都失效。 在示例项目中,如果更改用户的密码,则会为用户生成一个新令牌,并且以前的任何令牌都失效。 此功能为应用程序提供额外的安全层,因为更改密码时,你将从登录到此应用程序的所有其他浏览器 (所有其他浏览器) 处注销。

  • 使主键的类型对于用户和角色是可扩展的:在 ASP.NET Identity 1.0 中,表“用户”和“角色”的主键类型为字符串。 这意味着,当 ASP.NET 标识系统通过使用实体框架保存在 SQL Server 中时,我们使用的是 nvarchar。 基于传入的反馈,围绕 Stack Overflow 上的此默认实现进行了许多讨论。 我们提供了一个扩展性挂钩,你可以在其中指定“用户和角色”表的主键。 如果要迁移应用程序,并且应用程序存储的 UserId 是 GUID 或 ints,则此扩展性挂钩特别有用。

  • 支持用户和角色上的 IQueryable:添加了对 UsersStore 和 RolesStore 上的 IQueryable 的支持,可以轻松获取用户和角色列表。

  • 支持通过 UserManager 执行删除操作

  • UserName 上的索引:在 ASP.NET Identity Entity Framework 实现中,我们已使用 EF 6.1.0 中的新 IndexAttribute 在用户名上添加了唯一索引。 这可确保用户名始终是唯一的,并且不存在争用条件,最终会出现重复的用户名。

  • 增强的密码验证程序: ASP.NET Identity 1.0 中提供的密码验证程序是一个相当基本的密码验证程序,仅验证最小长度。 有一个新的密码验证程序,使你能够更好地控制密码的复杂性。 请注意,即使打开此密码中的所有设置,我们也鼓励你为用户帐户启用双重身份验证。

  • IdentityFactory 中间件/CreatePerOwinContext

    • 用户管理器:可以使用工厂实现从 OWIN 上下文获取 UserManager 的实例。 此模式类似于用于从 OWIN 上下文获取 AuthenticationManager 的登录和注销模式。 这是获取应用程序每个请求的 UserManager 实例的建议方法。
    • DbContextFactory:ASP.NET Identity 使用实体框架在 SQL Server 中保存标识系统。 为此,标识系统具有对 ApplicationDbContext 的引用。 DbContextFactory 中间件根据可在应用程序中使用的请求返回 ApplicationDbContext 的实例。
  • ASP.NET 标识示例 NuGet 包:使用示例 NuGet 包可以更轻松地安装和运行 ASP.NET 标识的示例,并遵循最佳做法。 这是 ASP.NET MVC 应用程序的示例。 在生产环境中部署此代码之前,请修改代码以适应应用程序。 此示例应安装在空 ASP.NET 应用程序中。 有关该包的详细信息,请转到以下博客文章: 宣布 rtm of ASP.NET Identity 2.0.0

Microsoft OWIN 组件

此版本中修复了许多 bug。

ASP.NET SignalR 2.0.2

此版本中修复了许多 bug。 有关详细信息,请参阅 2.0.2 版本的发行说明