ASP.NET Web Forms 的改进

  • Jonathan Allen
  • 马德奎

2014 年 5 月 20 日

话题:语言 & 开发

虽然 ASP.NET Web Forms 不是 vNext 计划的一部分,但它并没有被忽视。作为 Visual Studio 2013 Update 2 的一部分,它重新开始支持新工具、EF 集成和 Roslyn。

为什么 Web Forms 不是 ASP.NET vNext 的一部分

作为开始,让我们先为这个坏消息做下解释。为了改进性能和跨平台可移植性,ASP.NET vNext 正在消除对 System.Web 的依赖。与OWIN相比,它缓慢而庞大,使测试工作多了不必要的麻烦。

虽然他们已经多次尝试将其分离出来,但 Web Forms 与 System.Web 其它部分的联系实在是太紧密。那只是问题的开始。System.Web 与 System.Design 有循环依赖,这种情况实在都不应该有出现的可能。更为复杂的是,System.Design 还将 System.Windows.Forms 牵涉其中。

总而言之,Web Forms 的代码就像一团解不开的意大利面。但它还会继续使用,因此微软目前还会对它提供支持。

支持 Roslyn

作为其部署策略的一部分,Web Forms 一直包含运行时编译。这点没有变化,但作为替代实现,开发人员可以切换到基于 Roslyn 的 CodeDOM 提供程序。(CodeDOM是 Web Forms 目前使用的编译器框架)Pranav Rastogi 写道:

我们测试了一个大小和复杂度适中的应用程序(在\bin 目录下有 600 多个程序集,500 多个用户控件 & 页面),在启用了将在下面详细说明的新的 CodeDOM 提供程序后,启动 / 预编译阶段的运行时编译成本由 15 分钟左右降到了 70 秒左右。

支持 ASP.NET Identity 2.0

ASP.NET Identity 是现代用于构建 ASP.NET 应用程序的新的成员资格管理系统。Identity 使得增加用户配置文件、诸如 Facebook、Twitter、微软账户、Google 等社会化登录、将持久层由 SqlServer 切换到 Azure Table Storage 等工作更简单。它还增加了诸如账户确认、双因素身份验证、帐户锁定、从任何地点单点登录、密码重置和许多其它安全相关的功能。

在本次更新中,Web Forms 模板经过修改包含了来自 ASP.NET Identity 2.0 的功能。

支持 Entity Framework 6

为支持 EF6,下面的组件已经更新:

Web Forms脚手架

脚手架是用在 ASP.NET MVC 模型中的基本 CRUD 操作的代码生成器,在 Visual Studio 2013 中进行了重写。重写的结果是,微软现在可以为 Web Forms 提供脚手架支持。特别地,开发人员可以从一个模型对象生成创建、替换、更新和删除视图。

读者可以从.NET Web 开发与工具博客上读到完整的Web Forms 公告

查看英文原文:Improvements for ASP.NET Web Forms

语言 & 开发