Answers:
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 Core是运行时。它可以执行为其构建的应用程序。
ASP.NET Core是构成一个用于构建Web应用程序的框架的库的集合。ASP.NET Core库可在.NET Core和“完整.NET Framework”(Windows附带很多年)上使用。
令人困惑的部分是,使用ASP.NET Core库和工具的应用程序通常被称为“ ASP.NET Core应用程序”,从理论上讲它并没有说明它是为.NET Core还是.NET Framework构建的。因此,“ ASP.NET Core应用程序” 也是 “ .NET Core应用程序”或“ .NET Framework应用程序”。
此图显示了所涉及技术的关系(摘自此博客文章)
在这里,您可以看到ASP.NET Core是在.NET Framework和.NET Core的“顶部”构建的,而“ ASP.NET”(现在通常称为“经典ASP.NET”)仅是.NET Framework。
ASP.NET Core
,然后在Web服务器上做我们需要安装.NET Core Runtime
和ASP.NET Core runtime
或仅仅ASP.NET Core runtime
是足够的
使用.NET Core的 ASP.NET Core-所有依赖项都是自包含的,可以使用大多数NuGet软件包,不能使用Windows特定的软件包,可以在Windows,Linux和Mac上执行。
使用.NET Framework的 ASP.NET Core-大多数依赖项都是自包含的,仅在Windows上执行,可以访问Windows特定的NuGet程序包,需要在计算机上目标安装的.NET Framework版本。
ASP.NET Core是.NET Core支持的工作负载之一。
.NET Core本身包括一个单一的应用程序模型-控制台应用程序-对工具,本地服务和基于文本的游戏很有用。.NET Core之上还构建了其他应用程序模型以扩展其功能,例如:
- ASP.NET核心
- Windows 10通用Windows平台(UWP)
- Xamarin表格
最重要的是,我想补充一下可能会对某人有所帮助。
.NET Core请求管道中有一种称为中间件注入的东西。如果实施正确,这将非常有用,因为它可以自动拦截应用程序异常,并使得在一处记录变得容易得多,而不是登录每种方法。