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

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

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

任何人都可以简单解释一下

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

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

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

.NET核心:

.NET Core是作为ASP.NET Core基础的小型优化运行时。 它目前运行在Windows,Linux和Mac上。 它是一个高性能和模块化的devise,并且支持在Web服务器上有多个应用程序,每个应用程序都有自己的.NET Core运行时副本,从而实现了完整的并行体验,这将使得易于采用新的应用程序。 .NET Core版本,而不会影响其他应用程序,这使得.NET Core体系结构从当前的经典.NET 4.6向前迈进了一大步。 这些产品由.NET团队积极开发,并与开源开发者社区合作开发。 我们一起致力于改进和扩展.NET平台的新function和新场景。

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

.NET Core还包含基类库。 这些库与.NET Framework类库在很大程度上是相同的,但是已经被考虑到了(取消依赖关系),使我们能够发布一小部分库。 这些库在NuGet.org上以System。* NuGet包的forms发货。

有关更多信息,请参见.NET Core简介

ASP.NET 5是一个基于DNX(.NET执行环境)的新平台。 DNX值class加载CLR。 现在有两种types的DNX:完整的.NET CLR(来自.NET Framework)和CoreCLR。 CoreCLR是一个新的跨平台轻CLR(在Win / Linux / Mac上运行)。

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

为旧的.NET构build的IL程序集仍然与新的CoreCLR和DNX一起使用。 所以ASP.NET 5的function是一大堆nuget包。

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

国际海事组织最好把“ASP.NET 5”视为“.NET 5”。

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

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

他们给它起一个新名字的原因是他们做出的非常根本的改变。

这些基本的变化包括:

  • 跨平台 :它可以在Windows / Linux / Mac上运行,而不是以前的版本只能在Windows / IIS上运行
  • 它现在是完全开源的 ,你可以在GitHub中看到它的每一个代码。
  • 它的性能 (特别是在ASP.net中)比以前的版本更好,因为您可以根据需要(通过中间件)轻松定制您的请求pipe道。如果您熟悉nodejs和ExpressJs框架,它与ExpressJs非常相似。 在某些情况下,它比NodeJsperformance更好。 看看这个基准 。
  • 它的devise具有现代的应用程序开发思维,适用于高度分布式的云应用程序微服务容器 (docker)

顺便说一下,在Linux apt和Docker包中,还有一个Mono运行时作为CoreCLR的替代品。 当安装DNX时,单声道仍然是默认设置。 关于“Core”的全部内容是它是一个跨平台的.net框架,并且在某个时候托pipe一个ASP.NET 5应用程序不会使用IIS,Apache,Mono等,而是DNX和Libuv。

ASP.NET Core是ASP.NET MVC 5的下一个版本,是的,版本号很混乱! 它经历了一些名字的变化。 它从ASP.NET vNext开始,然后更改为ASP.NET 5,接下来重命名为ASP.NET MVC 6,最终成为ASP.NET Core 1.0。

ASP.NET和ASP.NET Core的主要区别在于

  • 平台独立function,ASP.NET核心提供托pipe在多个平台(Win / Linux / Mac OS)托pipe( 跨平台 )。
  • 推出了CLR的轻版本和具有非依赖框架的程序集

  • 框架是一个完整的重写 (去除与DI的依赖关系)及其开源项目

  • 项目默认项目模板使用JQuery的Type脚本进行更新。
  • 改进了新的安全function,并完全解除了所有依赖框架的耦合

  • 更新的项目模板与基于angular和基于json的configuration和增强包支持与节点模块。

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

如果你是新手,请参考这里

.NET Core 1.0不是.NET 4.6.2(Full .NET Framework)的下一个版本。 如果是下一个版本,则应具有比以前版本更多的function。 但根据微软.NET核心1.0没有一些.NET 4.6的function。 这就是为什么他们将其命名为.NET Core 1.0而不是.NET 5。

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

你可以在这里find更多的更新信息。