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

Jus*_*mes 72 .net c# .net-core asp.net-core

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

.NET Framework是否提供 .NET Core 类似的性能

Nat*_*ini 90

这可能会让人感到困惑,但重要的是要记住:在一天结束时,"ASP.NET Core"只是一堆可以安装在项目中的NuGet包.

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

.NET Framework上的ASP.NET Core是"完整"或"桌面".NET Framework(例如.NET Framework 4.6.2)上的ASP.NET Core.这些应用程序只能在Windows上运行,但有关ASP.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

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

  • 有两个可以构建的底层框架的目的是什么?这是你必须做的另一个选择去.net核心或完整的.net框架与asp.net Core一起使用.是.net核心没有构建Web应用程序所需的所有功能的目标,因此需要完整的.net框架 (5认同)
  • @JustinHomes应用程序和软件包需要移植到.NET Core,有时这很难取决于它们使用的API.该选项存在,因此您可以在"完整".NET上使用ASP.NET Core,然后在将来移植到.NET Core,如果您需要跨平台功能. (5认同)
  • @NateBarbettini已经提出了一个问题.http://stackoverflow.com/q/38237576/2056869 (3认同)
  • @NateBarbettini如果使用.NET Framework上的ASP.NET核心(CLR),是否所有nuget包都能正常工作?或者由于ASP.NET Core会导致兼容性问题吗? (2认同)
  • @JonasAxelsson是的,如果软件包支持CLR(即`netstandard1.1`或更高版本,或`net451`或更高版本). (2认同)

Nay*_*ian 9

ASP.NET核心与.NetCore是一个跨平台(它可以在Windows,Linux或其他平台上运行),高性能,开源为建设现代,基于云计算的互联网连接的应用程序框架.它能够在您自己的进程中托管IIS,Nginx,Apache,Docker或自托管.

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

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

我们还可以使用Visual Studio Code,Atom等编辑器来运行应用程序.

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

另一方面,具有.Net框架 .Net框架的Asp.Core在2005年之前就开始了,它不断添加新功能,使其成为一个复杂的框架并且更重.它不是跨平台的.它支持Aspx,WPF,WCF和WebServices

.Net框架执行计划 在此输入图像描述

.Net核心计划 在此输入图像描述


小智 5

使用 .NET Core 的 ASP.NET Core - 所有依赖项都是独立的,可以使用大多数 nuget 包,不能使用 Windows 特定的包,可以在 Windows、Linux、Mac 上执行

使用 .NET Framework 的ASP.NET Core - 大多数依赖项是独立的,仅在 Windows 上执行,将有权访问 Windows 特定的 nuget 包,需要目标安装在计算机上的 .net Framework 版本