虽然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,下面的组件已经更新:
EntityDataSource控件
DynamicData提供程序
通用提供程序
Web Forms脚手架
脚手架是用在ASP.NET MVC模型中的基本CRUD操作的代码生成器,在Visual Studio 2013中进行了重写。重写的结果是,微软现在可以为Web Forms提供脚手架支持。特别地,开发人员可以从一个模型对象生成创建、替换、更新和删除视图。
读者可以从.NET Web开发与工具博客上读到完整的Web Forms公告。