ASP.NET Core Web(.NET Core)与ASP.NET Core Web(.NET Framework)有什么区别?
Answers:
刚开始时可能会造成混淆,但是请记住重要的一点:最终,“ 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的所有其他行为都具有相同的方式。
根据您链接的基准,尽管.NET Core当前是最高的,但两者都将具有比ASP.NET 4.6更高的性能:
ASP.NET 4.6:<50k请求/秒
ASP.NET Core(CLR):40万个请求/秒
ASP.NET Core(.NET Core,Linux):900k req / sec
ASP.NET Core(.NET Core,Windows):> 1.1m req / sec
但是,这些基准稍早一些(2016年2月),反映了RTM之前的代码。从那时起,如果它们有所改进,我就不会感到惊讶。
netstandard1.1
更高net451
或更高)。
带有.NetCore的ASP.NET Core是一个跨平台(可以在Windows,Linux或其他平台上运行),高性能,开源框架,用于构建现代的,基于云的,Internet连接的应用程序。它具有在IIS,Nginx,Apache,Docker上托管或在您自己的进程中自托管的能力。
ASP.NET Core完全作为NuGet软件包提供。这使您可以优化应用程序,使其仅包含必要的NuGet程序包。实际上,面向.NET Core的ASP.NET Core 2.x应用程序仅需要单个NuGet程序包。较小的应用程序表面积的好处包括更严格的安全性,减少的服务和改进的性能。
不需要安装.Net框架即可与.net核心应用程序一起运行asp.net核心。具有.net core的ASP.NET Core应用程序是一个控制台应用程序,可通过其Main方法创建Web服务器。它使用Kestrel Web服务器运行该应用程序。
我们还可以使用Visual Studio Code,Atom等编辑器来运行该应用程序。
它不像现在一样支持Aspx,WPF,WCF和WebServices。它支持内置的依赖注入。使用coreclr,它是.net核心在asp.net核心中的运行时。
另一方面,带有.Net框架的Asp.Core .Net框架早在2005年之前就开始使用,并且不断增加新功能,使其变得更加复杂和笨重。它不是跨平台的。它支持Aspx,WPF,WCF和WebServices
使用.NET Core的ASP.NET CORE CORE-所有依赖项都是自包含的,可以使用大多数nuget包,不能使用Windows特定的包,可以在Windows,Linux,Mac上执行
使用.NET Framework的ASP.NET CORE-大多数依赖项都是自包含的,仅在Windows上执行,将有权访问Windows特定的nuget程序包,需要在计算机上安装有针对性的.net Framework版本