ASP.NET 5、.NET Core 和 ASP.NET Core 5 之间有什么区别?

What's the difference between ASP.NET 5, .NET Core, and ASP.NET Core 5?

我对这些术语之间的区别感到困惑:

谁能简单解释一下?

ASP.NET 5(现在 ASP.NET Core 1.0)

是下一代 ASP.NET,它为 Web 和云方案提供了熟悉的现代框架。它包括 ASP.NET MVC、Web API、Web Pages 和 SignalR 的下一版本。它是一种高性能的模块化设计,支持完全并行,可以无缝地从本地迁移到云端。这些产品由 ASP.NET 团队与开源开发人员社区合作积极开发。我们共同致力于为 Web 开发创建最佳平台。

更新:它已从 ASP.NET 5 重命名为 ASP.Net Core 1.0。

.NET 核心:

.NET Core 是小型优化运行时,它是 ASP.NET Core 的 基础。它目前在 Windows、Linux 和 Mac 上运行。它是一种高性能和模块化设计,支持在 Web 服务器上拥有多个应用程序,每个应用程序都有自己的 .NET Core 运行时副本,从而实现完整的并排体验,这将使采用新的 .NET 变得容易。 NET Core 版本而不影响其他应用程序,这使得 .NET Core 架构比当前的 classic .NET 4.6 有了飞跃。这些产品由 .NET 团队积极开发,并与开源开发人员社区合作。我们一起致力于改进和扩展 .NET 平台的新功能和新场景。

.NET Core 有两个主要组件。它包括一个小型运行时,该运行时是从与 .NET Framework CLR 相同的代码库构建的。 .NET Core 运行时包含相同的 GC 和 JIT (RyuJIT),但不包含应用程序域或代码访问安全性等功能。运行时通过 Microsoft.CoreCLR 包在 NuGet 上交付。

.NET Core 还包括基础 class 库。这些库在很大程度上与 .NET Framework class 库的代码相同,但经过分解(删除依赖项)使我们能够发布较小的库集。这些库作为 System.* NuGet 包在 NuGet.org.

上发布

有关详细信息,请参阅 Introducing .NET Core

ASP.NET5是一个基于DNX(.NET执行环境)的新平台。 DNX 负责加载CLR。现在有两种 DNX:用于 Full .NET CLR(来自 .NET Framework)和 CoreCLR。 CoreCLR 是一个新的跨平台轻型 CLR(在 Win/Linux/Mac 上运行)。

ASP.NET 5 在 CLR/CoreCLR 上无缝工作,因为 DNX 从正在使用的运行时抽象它。

为旧 .NET 构建的 IL 程序集仍可与新的 CoreCLR 和 DNX 一起使用。所以 ASP.NET 5 个功能是一堆 nuget 包。

严格来说,现在没有 "asp.net core 5" 和“.net core”之类的东西(如 CLR != .NET)。有 "ASP.NET 5 running on CoreCLR".

IMO 最好将 "ASP.NET 5" 视为“.NET 5”。

顺便说一下,linux apt 和 Docker 包中还有一个 Mono 运行时作为 CoreCLR 的替代品。在安装 DNX 时,Mono 仍然是默认设置。 "Core" 的全部内容是它是一个跨平台的 .net 框架,在某些时候托管 ASP.NET 5 应用程序不会使用 IIS、Apache、Mono 等,但 DNX 和 Libuv .

.NET Core 1.0 不是 .NET 4.6.2(完整的 .NET 框架)的下一版本。如果是下一个版本,它应该比以前的版本有更多的功能。但是根据 Microsoft 的说法,.NET Core 1.0 不具备 .NET 4.6 所具有的某些功能。这就是为什么他们将其命名为 .NET Core 1.0 而不是 .NET 5。

在 ASP.NET Core 1.0 中,他们使用 .NET Core 1.0 作为参考。这意味着我们不需要为 运行 我们的 ASP.NET Core 1.0 应用程序安装 .NET 框架。

您可以找到更多更新信息

还没有ASP.net Core 5。事实上,微软决定将 .net 5 (4.6 之后的版本) 更改为一个全新的名称:.net Core

所以2016年6月发布的版本实际上是.net Core 1.0

之所以给它取一个新名字,是因为他们对它进行了根本性的改变。

这些根本性变化包括:

  • 跨平台:它适用于Windows/Linux/Mac,而以前的版本仅适用于Windows/IIS
  • 它现在完全开源,您可以在 GitHub.
  • 中看到它的所有代码
  • 它的 性能(尤其是 ASP.net)比以前的版本好很多,因为您可以根据需要(通过中间件)轻松自定义请求管道).如果您熟悉 nodejs 和 ExpressJs 框架,它与 ExpressJs 非常相似。在某些情况下,它的性能优于 NodeJs。看看 this benchmark.
  • 它采用现代应用程序开发思维方式设计,适用于高度分布式云应用程序微服务容器 (docker)

ASP.NET核心是ASP.NETMVC 5的下一个版本,是的,版本号很混乱!它经历了几次名称更改。它以 ASP.NET vNext 开始,然后更改为 ASP.NET 5,next 更名为 ASP.NET MVC 6,最终成为 ASP.NET Core 1.0。

ASP.NET 和 ASP.NET 核心的主要区别是

  • Platform Independent Features, ASP.NET Core 提供多平台托管 (Win / Linux / Mac OS) 托管 (跨平台).
  • 引入了新的 CLR 和程序集的轻量版本,具有非依赖框架。

  • 框架是完全重写(去除依赖注入的依赖)及其开源项目

  • 项目默认项目模板更新为 JQuery 的类型脚本。
  • 改进了新的安全功能并完全解耦所有依赖框架。

  • 使用基于 angular 和 json 的配置更新了项目模板,增强了对节点模块的包支持。

  • 支持 Visual Studio IDE(2015 v3 + 2017 及更高版本)和 VS Code IDE。

如果您是新手,请参考Here

ASP.NET 核心 即 1.0/2.0... ASP.NET Core 是一个开源的跨平台框架,用于在 Windows、macOS 或 Linux 上构建基于云的现代 Web 应用程序。

ASP.NET 即...4.5/4.6 ASP.NET 是一个成熟的框架,提供在 Windows 上构建企业级、基于服务器的 Web 应用程序所需的所有服务。

没有 ASP.NET Core 5 和 .NET Core 这样的东西。 ASP.NET 5 与 ASP.NET Core 1.0 相同

请参考link: https://docs.microsoft.com/en-us/aspnet/core/choose-aspnet-framework?view=aspnetcore-2.0