在走过15年之后,ASP.NET Core完全重写了ASP.NET。它的特色在于采用模块化编程,完全开源,是轻量级的,最适合用在云上,可用于非微软平台。
完全重写的ASP.NET有很多优势,但这也意味着重写基于老版本的ASP.NET的现有Web应用程序。有必要把现有的Web应用程序重写为ASP.,NET Core版本吗?下面试着回答这个问题。
ASP.NET Core Web Forms不再是ASP.NET Core的一部分。但是,在Web应用程序中包括这项技术并不意味着必须重写它们。仍然可以用完整的框架维护用ASP.NET Web Forms编写的旧应用程序。在最新版本的.NET Framework中,ASP.NET Web Froms甚至有了一些增强,如异步的模型绑定。
ASP.NET的变体 ASP.NET MVC仍然是ASP.NET Core的一部分,但它不同于.NET Framework的旧框架。对ASP.NET MVC和ASP.NET Core MVC进行高级比较,会发现这两个技术非常类似。但幕后的所有内容都不同。把ASP.NET MVC应用程序转换为ASP.NET Core MVC,需要对源代码进行一些修改,把它们带到新的应用程序堆栈中。对于一些应用程序,这可能意味着对名称空间、类型和一些方法进行很小的修改。如果应用程序使用了ASP.NET MVC的一些高级功能,就必须进行更多的工作,把应用程序迁移到新技术上。
将ASP.NET Web Forms转换为ASP.NET Core MVC可能需要做很多工作。ASP.NET Web Forms从开发人员手中抽象出了HTML和JavaScript。使用ASP.NET Web Forms,就没有必要了解HTML和JavaScript。只需要使用服务器端控件和C#代码。服务器端控件返回HTML和JavaScript。此编程模型类似于旧的Windows Forms编程模型。使用ASP.NET MVC,开发人员需要了解HTML和JavaScript。ASP.NET MVC时基于模型-视图-控制器(MVC)模式,便于进行单元测试。因为ASP.NET Web Forms和ASP.NET MVC基于完全不同的体系结构模式,所以把ASP.NET Web Forms应用程序迁移到ASP.NET MVC时一个艰巨的任务。承担这个任务之前,应该创建一个清单,列出解决方案仍使用旧技术的优缺点,并与新技术的优缺点进行比较。未来很多年仍可以使用ASP.NET Web Forms。