NET Core和.NET Standard有什么不同
一、类型不同
1、NET Core:是适用于 windows、linux 和 macos 操作系统的免费、开源托管的计算机软件框架。
2、NET Standard:是微软为跨平台所规划的.NET Framework相关平台于系统之间的相依性标准。
二、功能不同
1、NET Core:有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台。
2、NET Standard:由微软提供引用组件,引用组件置于微软的CoreFX存储库,每一个定义的名字空间与类别都有一个ref文件夹,里面即是默认的实现码,所有参与.NET平台标准的实现者都必须要实现这些属性与方法,才能兼容于.NET平台标准。
三、内容不同
1、NET Core: 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。
2、NET Standard:是以引用组件的方式存在,其本身并没有任何实现,真正的实现是由平台拥有者所进行,而客户端使用简单的NuGet版本戳记即可获得正确的平台版本。
参考资料来源:百度百科-.net core
参考资料来源:百度百科-.NET Standard
最先有的是.NET framework。。。众多周知,.NET framework只能运行在Windows系统上。。后来微软计划使.NET可以运行在其他操作系统之上。也就是所谓的跨系统,或跨平台。
但是,有些东西,是Windows独有的。。。比如D3D。。。其他操作系统上,是没有的这东西的。。。那么.NET framework中与D3D相关的部分,自然就不需要跨系统吧?因为对于其他系统来说,这完全是多余的
所以,微软把.NET framework中,可以跨系统的部分,提取了出来。。。封装成标准库,这部分就是NET Standard Library。。。无论在哪个系统上,标准库里的内容都是可以完全通用的。
但其他操作系统里面,也有一些东西,是Windows上没有的啊。。。如果仅仅靠标准库里的内容,岂不没办法操作这些“Windows上没有的东西”?
所以便在标准库的基础上,开发出了NET Core。。。加入一些操作“Windows上没有的东西”的内容。。
简单概括就是。。。。.NET framework和.NET Core里面有一些部分,内容是相同的,这部分相同的内容,就被称为标准库。。。即NET Standard Library。。。而那些不同的部分,则分别叫做.NET framework和.NET Core