ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 之间的区别

Difference between ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)

ASP.NET Core Web (.NET Core) 与 ASP.NET Core Web (.NET Framework) 有什么区别?

.NET Framework 是否提供 similar performance 关于 .NET Core?

一开始这可能会令人困惑,但请务必记住:归根结底,“ASP.NET Core”只是一堆可以安装在您的项目中的 NuGet 包。

ASP.NET .NET Core 上的核心 是跨平台的 ASP.NET 核心。它可以在 Windows、Mac 和 Linux(包括 Docker)上 运行。服务器不需要安装 .NET Core - 依赖项可以与应用程序捆绑在一起。

ASP.NET .NET Framework 上的核心 是 ASP.NET“完整”或“桌面”.NET Framework 上的核心(例如 .NET Framework 4.6 .2).这些应用程序只能在 Windows 上 运行,但 ASP.NET Core 的其他所有内容都以相同的方式运行。

根据您链接的 benchmarks,两者的性能都将高于 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

但是,这些基准测试稍旧(2016 年 2 月)并且反映了 RTM 之前的代码。如果他们从那时起有所改进,我不会感到惊讶。

ASP.NET CORE using .NET Core - 所有依赖项都是独立的,可以使用大多数 nuget 包,不能使用 windows 特定包,可以在 windows、linux、Mac

上执行

ASP.NET CORE using .NET Framework - 大多数依赖项都是独立的,仅在 windows, 将可以访问 windows 个特定的 nuget 包,需要目标安装在机器上的 .net 框架版本

ASP.NET Core with .NetCore 是 跨平台(它可以 运行 on Windows、Linux 或其他平台)、高性能开源 框架,用于构建现代的、基于云的、联网的应用程序。它能够在 IIS、Nginx、Apache 上托管,Docker,或在您自己的进程中自托管。

ASP.NET 核心 完全作为 NuGet 包发布 。这允许您优化您的应用程序以仅包含必要的 NuGet 包。事实上,针对 .NET Core 的 ASP.NET Core 2.x 应用程序只需要一个 NuGet 包。较小的应用表面积的好处包括更严格的安全性、更少的服务和更高的性能。

使用 .net 核心应用程序不需要将 .Net 框架安装到 运行 asp.net 核心。 具有 .net 核心的 ASP.NET 核心应用程序 是一个在其 Main 方法中创建 Web 服务器的控制台应用程序。它使用 Kestrel Web 服务器 运行 应用程序。

我们还可以使用 Visual Studio 代码、Atom 等编辑器来 运行 应用程序。

它现在不支持 Aspx、WPF、WCF 和 WebServices。 它支持内置的依赖注入。 使用 coreclr,这是 asp.net 核心中的 运行 时间与 .net 核心。

Asp.Core with .Net framework 另一方面,.Net framework 早在 2005 年就开始了,它不断添加新功能,使它的框架有点复杂和沉重.它不是跨平台的。 它支持 Aspx、WPF、WCF 和 WebServices

.Net Framework 执行计划

.Net核心执行计划