ASP.NET 和 Web 工具 2013.2 for Visual Studio 2013 发行说明
安装说明
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 项目模板
- 在 IIS Express 上启动 Web 应用程序时支持 SSL
- Visual Studio Web 编辑器增强功能
- 浏览器链接
- 支持 Visual Studio 中的Azure 应用服务 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 Identity 2.0.0
- Microsoft OWIN 组件
- ASP.NET SignalR 2.0.2
一个 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。
设置 Web 项目属性页 Web 选项卡以使用基于 HTTPS 的 URL (SSL 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、注释/取消注释、快速信息、格式设置、语法验证、大纲显示、转到定义、颜色选取器、工具选项设置等。
HTML、Razor、CSS、LESS 和 Sass 文档中的新 URL 选取器:VS 2013 附带Web Forms页外没有 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 Forms页面外没有 URL 选取器。 HTML、Razor、CSS、LESS 和 Sass 编辑器的新 URL 选取器是一个无对话框的流畅键入选取器,可理解“..” 和 适当筛选 img 标记和链接的文件列表。
浏览器链接
- 浏览器链接现在支持 HTTPS 连接,只要证书受浏览器信任,就会在仪表板中列出该连接和其他连接。
- 静态 HTML 源映射
- 对映射数据的 SPA 支持
- 自动更新映射数据
支持 Visual Studio 中的Azure 应用服务 Web 应用
- 支持 Azure 登录。
- Web 应用的远程调试和远程视图:我们现在支持在Azure 应用服务中远程调试 Web 应用,并在服务器资源管理器中远程查看 Web 应用内容文件。
创建新的 Web 项目时创建远程 Azure 资源
我们在新的 Web 应用程序对话框中添加了 Azure “创建远程资源” 复选框。 通过选择它,你将能够通过几个简单步骤集成创建新 Web 应用程序、设置用于测试的 Azure 发布站点以及创建发布配置文件的体验。
的新项目
Web 发布增强功能
- 改善用于发布的用户体验。
ASP.NET 基架
- 枚举支持: 如果模型使用枚举,则 MVC 基架将为枚举生成下拉列表。 这会使用 MVC 中的枚举帮助程序。
- 启动支持:更新了 MVC 基架中的 EditorFor 模板,以便它们使用 Bootstrap 类。
- 包支持:MVC 和 Web API 基架将为 MVC 和 Web API 添加 5.1 包
以下屏幕截图演示基架模型。
模型代码:
编译模型代码,右键单击,然后选择“ 添加”、“ 新建基架项”。
使用 Entity Framework 选择具有视图的 MVC5 控制器:
使用模型添加控制器:
检查生成的代码,例如 Views/WeekdayModels/Edit.cshtml contains
@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 还允许在调用 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 窗体
- Web Forms模板现在显示如何为 ASP.NET 标识执行帐户确认和密码重置。
- Entity Data Source 控件和 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 的详细信息,包括新功能的文档链接,请参阅 实体框架版本历史记录。 此版本中的新功能包括:
- 工具整合功能提供了一种创建新 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 版本的发行说明 。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈