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

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

  • NET 5(现在更名为 ASP.NET Core,并以1.0而不是5.0的形式发布)
  • ASP.NET Core 5
  • .NET 核心

有人能简单解释一下吗?

43738 次浏览

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

是下一代 ASP.NET,它为 Web 和云场景提供了一个熟悉的现代框架。它包括 ASP.NET MVC、 Web API、 Web Pages 和 SignalR 的下一个版本。它是一个高性能和模块化的设计,并支持完全并排,使其无缝迁移从前提到云。这些产品是由 ASP.NET 团队与开源开发者社区合作积极开发的。我们一起致力于为网络开发创造最好的平台。

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

.NET 核心:

.NET 核心是小型优化的运行时,即 ASP.NET 核心的基础。它目前运行在 Windows、 Linux 和 Mac 上。它是一个高性能的模块化设计,支持在 Web 服务器上有多个应用程序,每个应用程序都有自己的。NET 核心运行时,使一个完整的并行体验,这将使它很容易采用新的。NET 核心版本,而不影响其他应用程序,这使得。NET 核心体系结构从当前的经典向前跨越。NET 4.6.这些产品是由。NET 团队,并与开源社区开发人员合作。我们共同致力于改善和扩大。NET 平台的新特性和新方案。

.NET 核心有两个主要组件。它包含一个小型运行库,该运行库与。NET 框架 CLR。那个。NET 核心运行时包含相同的 GC 和 JIT (RyuJIT) ,但不包含诸如应用程序域或代码访问安全性之类的特性。运行时在 NuGet 上通过微软交付。CoreCLR 包。

.NET 核心还包括基类库。这些库在很大程度上与。NET Framework 类库,但是已经分解(删除依赖项) ,使我们能够提供一个更小的库集。这些库作为 System 发布。* NuGet.org 上的 NuGet 软件包。

有关更多信息,请参见 介绍.NET 核心

NET 5是一个基于 DNX (。NET 执行环境)。DNX 负责装载 CLR。现在有两种 DNX: 对于 Full。NETCLR (由。NET 框架)和 CoreCLR。CoreCLR 是一个新的跨平台轻型 CLR (运行在 Win/Linux/Mac 上)。

NET 5可以在 CLR/CoreCLR 上无缝地工作,因为 DNX 将它从正在使用的运行时抽象出来。

为旧程序集生成 IL 程序集。NET 仍然与新的 CoreCLR 和 DNX 一起使用。所以 ASP.NET 5的功能就是一堆新奇的软件包。

严格来说,现在还没有“ asp.net core 5”和“ .net core”这样的东西(CLR!= .NET).在 CoreCLR 上运行的是 ASP.NET 5。

我觉得最好把“ ASP.NET 5”看作“ .NET 5”。

顺便说一下,在 linux apt 和 Docker 包中也有一个 Mono 运行时作为 CoreCLR 的替代品。Mono 在安装 DNX 时仍然是默认的。“核心”是一个跨平台。NET 5应用程序将不会使用 IIS,Apache,Mono 等,但是 DNX 和 Libuv。

.NET Core 1.0不是。NET 4.6.2(全。NET 架构)。如果是下一个版本,它应该比上一个版本有更多的特性。但根据微软的说法。NET Core 1.0没有这些特性。NET 4.6得到。这就是为什么他们把它命名为。NET Core 1.0代替。NET 5.

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

您可以找到更多更新的信息 给你

还没有 ASP.net Core 5。事实上,微软决定改变。Net 5(4.6后的版本)更名为: 。网络核心

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

他们之所以给它起了个新名字是因为他们对它做了根本性的改变。

这些根本性的变化包括:

  • 跨平台 : 它可以在 Windows/Linux/Mac 上工作,而以前的版本只能在 Windows/IIS 上工作
  • 它现在完全是 开源,您可以在 GitHub 中看到它的所有代码。
  • 它的 表演(特别是在 ASP.net 中)比以前的版本要好得多,因为您可以根据需要(通过中间件)轻松地定制请求管道。如果您熟悉 nodejs 和 ExpressJs 框架,那么它与 ExpressJs 非常相似。在某些情况下,它的性能优于 NodeJ。看看 这个基准
  • 它的设计与应用程序开发的现代心态,为 高度分布式云应用程序微型服务容器(多克)

NET Core 是 ASP.NET MVC 5的下一个版本,是的,版本号令人困惑!它经历了一些名称的改变。开始是 ASP.NET vNext,后来改名为 ASP.NET 5,后来改名为 ASP.NET MVC 6,最终成为 ASP.NET Core 1.0。

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

  • NET Core 提供多平台(Win/Linux/Mac OS)托管(跨平台)的托管功能。
  • 引入了带有非依赖框架的新 CLR 和组件的打火机版本

  • 框架是一个 完全重写(移除对 DI 的依赖)及其 开源项目

  • 项目默认项目模板使用 Type 脚本代替 JQuery 进行更新。
  • 改进了所有相关框架的新安全特性和 完全脱钩

  • 更新项目模板的角度和 json 为基础的配置和增强的软件包支持节点模块。

  • 支持 VisualStudioIDE (2015v3 + 2017及以上版本)和 VSCodeIDE。

如果您是新手,请参考 给你

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

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

根本就没有 ASP.NET Core 5和.NET Core 这样的东西。 NET 5和 ASP.NET Core 1.0是一样的

请参阅以下连结: Https://learn.microsoft.com/en-us/aspnet/core/choose-aspnet-framework?view=aspnetcore-2.0