微软于2016年推出了新一代的开发平台,并且将其命名为.NET Core。相较于旧的.NET Framework。
.NET Core有如下优点:
1).NET Core采用模块化开发。不再像.NET Framework那样需要安装整个安装包。.NET Core核心只包含很少的文件,所有其他模块都需要单独安装。根据需要引用各自不动的版本和包。
(2).NET Core支持独立部署,也就是说,可以把.NET Core运行时环境和开发的程序打包到一起部署。这样就不需要在服务器上安装.NET Core运行环境,只要把程序复制到服务器上,程序就能运行,这对容器化、无服务器(Serverless)等非常友好。
(3)程序的运行效率更高。.NET Core的所有管道都是可以插拔的,我们可以决定程序需要哪些管道及它们的执行顺序,因此用.NET Core开发出来的程序运行效率更高。
(4)ASP.NET Core程序内置了简单且高效的Web服务器—Kestrel。Kestrel被嵌入ASP.NET Core程序中运行,因此整个ASP.NET Core程序其实就是一个控制台程序。Kestrel可被配置上安全、HTTPS、限流、压缩、缓存等功能,从而成为直接面向终端用户的Web服务器,这样网站运行不依赖于IIS;也可以将其配置成轻量级的Web服务器,而安全、HTTPS、限流、压缩、缓存等功能则由部署在它前面的IIS、Nginx等反向代理服务器完成。
微软为什么抛弃旧的.NET Framework,而重新开发新的平台呢?
.NET Framework是2002年由微软推出的开发平台,那时候还没有云服务平台、容器、微服务等概念,也就不能在平台中考虑这些因素,因此我们基于.NET Framework进行新项目的开发无法满足功能需求。
.NET Standard介绍
.NET Standard规定了一系列需要被所有.NET Core、.NET Framework及Xamarin等共同实现的API,包括有哪些类、有哪些方法、参数和返回值是什么等。需要说明的是,.NET Standard只是一个规范,不是一个框架。不要以为.NET Standard是一个被.NET Framework、.NET Core、Xamarin等共用的基础库,.NET Standard只是规定了需要被实现的规范,但是不负责具体实现。对于.NET Standard类型的类库项目,当我们分别在.NET Core项目和.NET Framework项目中引用这个类库的时候,就可以看到它们执行时的差别。
.NET Standard随着.NET技术的升级而升级,不同版本的.NET Core、.NET Framework等支持不同版本的.NET Standard,越高版本的.NET Core、.NET Framework等支持的.NET Standard版本越高。如下图所示
如果一个类库遵守一个版本的.NET Standard规范,那么不低于对应这个版本的.NET Core、.NET Framework的项目都可以使用这个类库。比如一个类库遵守.NET Standard 2.0规范,那么不低于.NET Core 2.0或者不低于.NET Framework 4.6.1的项目就都可以使用这个类库。如果我们要编写一个给公众使用的类库,为了让.NET Core、.NET Framework、Xamarin等开发人员都能使用这个类库,这个类库就应该是.NET Standard类库,并且.NET Standard的版本应尽可能低一些,这样低版本的.NET Core、.NET Framework、Xamarin的项目也能使用这个类库。
总而言之,.NET Standard是一个.NET平台下的规范,使得我们开发的类库可以被.NET Framework、.NET Core、Xamarin等使用,提高了代码的复用性。.NET Standard已经完成了它的历史使命。从.NET 5开始,微软将不再更新.NET Standard,而是会把.NET 5、.NET 6等视为单一的代码库,并会通过编译期和运行时的检查来解决不同平台下它们所支持的功能具有差异这一问题。
附上Net Core 发展特征表
以及迭代路线图
作者:小羽信息 出处:http://www.cnblogs.com/fer-team/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。