NETStandard,NETFx,Mono,NETCore,ASPNetCore 之间关系的整理

因为现在很多人对这几者之间的关系还不甚了解,这里根据我所知来做一个大概的介绍......

 

 

.NET Standard:
         .NET标准,只要符合这个标准实现类库,即可在支持此标准的Runtime上运行

 

>>>>>>>>>

 

 

.NET Framework:
         完整的.NET,只支持Windows,不同版本支持的.NET Standard不同,最新支持.NET Standard 2.x

>>>>>>>>>

 


Mono:
         Mono即为.NET Framework的跨平台完整实现(除去WPF/WCF等少部分未实现),支持 X64/X86/部分ARM 平台,
         同样支持.NET Standard,不同版本支持的.NET Standard不同,最新支持.NET Standard 2.x,

         注:
                  使用Mono对现有项目进行跨平台需要注意项目所引用的库是否使用了Windows独有的功能/API等

 

 


>>>>>>>>>

 


.NET Core:
         .NET跨平台实现的版本,支持X64/X86/部分ARM平台,虽说是.NET跨平台实现的版本,但和原来的.NET Framework实际有极大的不同,
         包括不同的底层实现(如 RyuJIT,Core CLR,LLILC 等),性能更加优越,没有WINFORM/WPF这种桌面开发的框架等等
         并且.NET Core也是完全对.NET Standard的支持,最新支持.NET Standard 2.x
         (有兴趣的小伙伴可以搜一搜博客园中对.NET Core的性能测试文章)

         注:
                  依托于.NET Core的应用程序/WEB程序可直接发布内嵌Runtime的版本,无需额外安装Runtime环境

 

 

>>>>>>>>>

 

 

ASP.NET Core(MVC/WebAPI等等):
         最新的.NET WEB开发框架,完全按照.NET Standard实现,完全的模块化安装(按需安装模块),
         没有ASP.NET的System.Web.dll这一大坨的拖累,性能优于原有ASP.NET(MVC/WebAPI)(有兴趣的小伙伴可以测试一下),
         同样,因为是完全按照.NET Standard实现的WEB框架,
         所以可运行在: .NET Framework , Mono , .NET Core 上,


         注:
                  由于至今ORACLE未出.NET Core的驱动,并且 .NET Core 现有第三方类库较少,
                  所以可考虑使用.NET Framework/Mono作为 ASP.NET Core 的运行环境
                  (但使用第三方库需要注意是否调用了Windows独有功能/API等)



>>>>>>>>>

 

 

 以上.....如有不对还望诸位多多指正....别误导了别人.....

 

(由   玩双截棍的熊猫  2017-11-30 整理发布,转载请注明出处和链接以及作者名字...)

 

posted @ 2017-11-30 10:36  玩双截棍的熊猫  阅读(784)  评论(0编辑  收藏  举报