Asp.net core .NET核心与ASP.NET核心

Asp.net core .NET核心与ASP.NET核心,asp.net-core,.net-core,Asp.net Core,.net Core,.NET Core和ASP.NET Core之间到底有什么区别 它们是相互排斥的吗?我听说ASP.NET核心是建立在.NET核心之上的,但它也可以建立在完整的.NET框架之上 那么什么是ASP.NET核心呢?ASP.NET核心是.NET核心支持的工作负载之一 发件人: .NETCore本身包括一个单一的应用程序模型——控制台应用程序,它对工具、本地服务和基于文本的游戏非常有用。在.NET Core之上构建了其他应用程序模型,以扩展其功能,例如: ASP.NET内核 Windows 10通用Wi

.NET Core和ASP.NET Core之间到底有什么区别

它们是相互排斥的吗?我听说ASP.NET核心是建立在.NET核心之上的,但它也可以建立在完整的.NET框架之上


那么什么是ASP.NET核心呢?

ASP.NET核心是.NET核心支持的工作负载之一

发件人:

.NETCore本身包括一个单一的应用程序模型——控制台应用程序,它对工具、本地服务和基于文本的游戏非常有用。在.NET Core之上构建了其他应用程序模型,以扩展其功能,例如:

  • ASP.NET内核
  • 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.NET Core层不能再在3.0+中的.NET Framework之上使用

.NET核心是一个运行时。它可以执行为其构建的应用程序

ASP.NET Core是一组库,它们构成了构建web应用程序的框架。 ASP.NET核心库可以在.NET核心和“完整的.NET框架”(windows附带多年)上使用

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

此图显示了所涉及技术的关系(取自)

在这里,您可以看到ASP.NET Core是在.NET Framework和.NET Core之上构建的,而“ASP.NET”(现在通常称为“经典ASP.NET”)只是.NET Framework。

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


使用.NET Framework的ASP.NET Core-大多数依赖项是自包含的,仅在Windows上执行,将有权访问Windows特定的NuGet软件包,需要在计算机上安装的.NET Framework版本。

该.NET Framework是其最新版本。 4.8之后不会再有第二次了。微软将继续使用.NETCore。从现在起,您应该在项目中更喜欢.NET Core。

我想补充一点,在.NET Core请求管道中有一种叫做中间件注入的东西。如果实现正确,这是非常有用的,因为它可以自动拦截应用程序异常,并使日志记录变得更加容易(在一个地方而不是在每个方法中都进行日志记录)。

可能重复的,那么我们称之为经典ASP?“古代ASP”?:p@DanSchnau,我们有“Classic ASP”、“ASP.NET”又名“Classic ASP.NET”和“ASP.NET Core”,所以没有任何冲突:)@MartinUllrich:我们确实不能在云上部署.NET,但.NET Core可以部署在云上吗?这取决于“云”对您的意义。例如,Azure AppService可以承载10年前构建的经典.NET Framework web应用程序。创建用于云托管kubernetes的基于linux的docker映像需要.NET Core。但是辅助服务直接是.NET Core而不是ASP NET Core,对吗?我经常感到困惑,我是否可以在asp net core而不是.net core上使用辅助服务应用程序?这对我来说是一个更相关的答案。控制台应用的Net核心,web应用的ASP.Net核心。谁命名这些东西?这太令人困惑了。@Nick:Microsoft市场营销部。他们在这方面有着悠久的历史。他们还没有发现网络——在产品中使用普通名词(在搜索引擎世界中,不太常用的词越具体越好,最好是字典中没有的独特词)。有点过时但相关:注意.NET 5.0是.NET Core 3.1的后续版本,而不是.NET Framework 4.0“以避免混淆”[您能在答案中添加一个或多个参考/链接吗?