ASP.NET Core 是一个开源、跨平台的高性能框架,用于构建现代的、云端优化的、连接互联网的应用程序。从ASP.NET Core的发布开始,它就设计成可以在.NET Core上运行,也支持在.NET Framework上运行。然而,随着.NET Core的发展和成熟,以及.NET 5及其后续版本的推出,微软逐渐推动开发者向更现代的.NET运行时迁移。

ASP.NET Core (.NET Core)

使用.Net Core运行时的ASP.NET Core可以支持跨平台(Windows, Mac, and Linux (包括Docker)),服务器不需要安装.Net Core,它的依赖与应用程序捆绑在一起。而且它是高性能的开源的框架。它能够在您自己的进程中托管IIS,Nginx,Apache,Docker或自托管。ASP.NET Core完全作为NuGet包发布。这允许您优化您的应用程序,使其仅包含必要的NuGet包。实际上,面向.NET Core的ASP.NET Core 2.x应用程序只需要一个NuGet包。应用程序表面积较小的好处,可以有更严格的安全性,更少的服务和更高的性能。可以使用 Kestrel web server。可以使用Visual Studio Code写代码。它现在还不支持Aspx, WPF, WCF and WebServices。它内置依赖注入的支持。可以使用coreclr,它是带有.net core的asp.net核心的运行时。

ASP.NET Core (.NET Framework)

基于.NET Framework,只能在Windows上运行。虽然它允许开发者利用现有的.NET Framework库和功能,但它没有.NET Core的跨平台能力。

根据以往的测试数据,两者都将具有比ASP.NET 4.6更高的性能,但.NET Core目前是最高的

  • ASP.NET 4.6: <50k req/sec
  • ASP.NET Core (CLR): 400k req/sec
  • ASP.NET Core (.NET Core, Linux): 900k req/sec
  • ASP.NET Core (.NET Core, Windows): >1.1m req/sec

.Net Framework运行图

Net Framework

.Net core运行图

Net core

推荐文档