. net Core和ASP之间到底有什么区别?网络核心?

它们是相互排斥的吗?我听到ASP。NET Core构建在。NET Core之上,但它也可以构建在完整的。NET框架之上。

ASP到底是什么。网络核心?


ASP。NET Core是.NET Core支持的工作负载之一。

来自。net核心指南:

就其本身而言,. net Core包括一个单一的应用程序模型——控制台应用程序——这对于工具、本地服务和基于文本的游戏非常有用。在.NET Core之上构建了更多的应用程序模型来扩展它的功能,例如: ASP。网络核心 Windows 10通用Windows平台(UWP) Xamarin的。形式


2020年更新:请注意ASP。NET Core 3及更高版本现在依赖于。NET Core,不能再用于。NET Framework。下面的描述是针对ASP。NET Core 1.x-2.x;层分离仍然适用于ASP。NET Core 3.0,而ASP。在3.0+版本中,NET核心层不能再用于。NET Framework之上。

. net Core是一个运行时。它可以执行为它构建的应用程序。

ASP。NET Core是一个库的集合,它形成了一个构建web应用程序的框架。 ASP。NET Core库可以在。NET Core和“完整的。NET框架”(已经随windows发布多年了)上使用。

令人困惑的是,一个使用ASP库和工具的应用程序。NET Core通常被称为“ASP。这在理论上并没有说它是为。NET Core还是。NET Framework构建的。所以ASP。NET Core Application”也是一个。NET核心应用程序"或"。NET框架应用程序”。

这张图片显示了所涉及的技术之间的关系(摘自这篇博客文章)

这里你可以看到ASP。NET Core是建立在。NET Framework和。NET Core之上的。NET”(现在通常被称为“经典ASP.NET”)只是。NET框架。


ASP。NET Core使用。NET Core -所有依赖项都是自包含的,可以使用大多数NuGet包,不能使用Windows特定的包,可以在Windows、Linux和Mac上执行。

ASP。NET Core使用。NET Framework -大多数依赖项是自包含的,只在Windows上执行,可以访问Windows特定的NuGet包,需要目标安装在机器上的。NET框架版本。


. net框架已经发布了最后一个版本。4.8之后不会再有了。微软将继续使用。net Core。从现在开始,你应该在你的项目中使用。net Core。

官方更新(来源):

.NET 5 is the next major release of .NET Core following 3.1. We named this new release .NET 5 instead of .NET Core 4 for two reasons: We skipped version numbers 4.x to avoid confusion with .NET Framework 4.x. We dropped "Core" from the name to emphasize that this is the main implementation of .NET going forward. .NET 5 supports more types of apps and more platforms than .NET Core or .NET Framework. ASP.NET Core 5.0 is based on .NET 5 but retains the name "Core" to avoid confusing it with ASP.NET MVC 5. Likewise, Entity Framework Core 5.0 retains the name "Core" to avoid confusing it with Entity Framework 5 and 6.


. net Core是. net框架的下一步发展,它允许微软的技术托管在其他操作系统平台上,而不是Windows。

ASP。NET是微软提供的web框架,用于构建:

服务器端渲染的网页/网站 用于spa的服务器端组件 MVC-fashion应用 web服务/web api /微服务

ASP。NET只能在Windows平台上运行。

由于. net Core的创建是为了提供在Linux/macOS之上运行微软技术的能力,这意味着ASP。NET Core是ASP的进化。NET方向的多平台支持。

结论:

ASP。NET Core可以在。NET Core和。NET 5.0上运行,在多种操作系统平台上运行:Windows、Linux和macOS。

ASP。净4。x (ASP.NET/ASP。NET MVC)只运行在。NET框架上,在Windows操作系统之上。