ASP.NET 5,.NET Core和ASP.NET Core 5有什么区别?[关闭]


71

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

  • ASP.NET 5(现已重命名为ASP.NET Core,并且发布为1.0,而不是5.0)
  • ASP.NET Core 5
  • .NET核心

谁能简要解释一下?


值得注意的是,从2020年开始,ASP.NET Core 5.0现在用于描述ASP.NET/ASP.NET Core的最新版本,并与.NET 5.0发行版相对应。
杰里米·卡尼

Answers:


65

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 Core:

.NET Core是经过优化的小型运行时,它是ASP.NET Core基础。它当前可在Windows,Linux和Mac上运行。它是一种高性能的模块化设计,并支持在Web服务器上拥有多个应用程序,每个应用程序都有自己的.NET Core运行时副本,从而可以提供完整的并排体验,并且可以轻松地采用新的。 NET Core版本而不会影响其他应用程序,这使.NET Core体系结构比当前经典的.NET 4.6有了飞跃。这些产品由.NET团队积极开发,并与开放源代码开发人员社区合作。我们共同致力于使用新功能和新方案来改进和扩展.NET平台。

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

.NET Core还包括基类库。这些库与.NET Framework类库的代码基本相同,但是已经进行了分解(消除了依赖项)以使我们能够发布较小的库集。这些库作为NuGet.org上的System。* NuGet软件包提供。

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


感谢您的链接,.NET Core的目标是拥有一个单一的代码库,该代码库可用于构建和支持所有平台,包括Windows,Linux和Mac OSX。并检查这篇文章这篇文章,它说.NET Core比PHP快,是吗?
Shaiju T

有人可以澄清一下ASP.NET Core是否是正在开发中的唯一ASP.NET版本?他们是在维护另一个仍针对完整(旧的)框架的版本,还是试图在一个库下进行所有操作?
jocull

1
.NET Core不是ASP.NET Core的基础,它们实际上是完全脱钩的(ASP.NET Core是作为针对.NET Standard的库编写的)。尽管有名称,但您可以将ASP.NET Core与完整的.NET Framework一起使用,而不仅是.NET Core(但是,是的,通常鼓励将.NET Core用于新项目,除非您因与第三方库的兼容性原因而受阻。等等)。
尼姆

10

ASP.NET 5是基于DNX(.NET执行环境)的新平台。DNX负责加载CLR。现在有两种DNX:用于完全.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)。有“在CoreCLR上运行的ASP.NET 5”。

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


有.NET Core。有.NET 4.6完整框架以及更小的.NET Core 5框架。.NET Core = CoreCLR(运行时)+ CoreFX(基本库)。
nawfal 2015年

2
如果您是说现在所谓的“ .NET Core 1.0”将是所有“ .NET”的未来,不仅如此,是的,我也同意您的观点,但是在我们看到winforms或wpf可能要花很长时间,或任何其他用于.Net Core的桌面GUI工具包。.NET 4.6是成熟的桌面和Web平台,而.NET Core 1.0显然不是桌面平台。在网络方面,.NET core是1.0版本,可以投入生产,但还不成熟。
沃伦·P

@Warren P-Well UWP现在(.2017年10月)在.NET Core 2.0上运行,并实现.NET Standard 2.0。因此,我们不必等太久就可以在其上运行桌面GUI。对我来说,.NET Core不是桌面平台根本不是很清楚,至少在您将诸如UWP之类的桌面+技术堆在其之上之后。我的意思是,这始终是计划,不是,UWP是.NET Core的特定于平台的扩展吗?
加文·威廉姆斯

4

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

因此,2016年6月发布的版本实际上是.net Core 1.0

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

这些基本变化包括:

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

1
您完全混淆了ASP.NET Core和.NET Core。这个答案是错误的,没有任何意义。
尼姆

3

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之间的主要区别是

  • 平台独立功能,ASP.NET Core提供了在多个平台(Win / Linux / Mac OS)托管(跨平台)中的托管。
  • 引入了新的较轻版本的CLR和具有非依赖框架的程序集

  • 框架是一个完整的重写 (使用DI删除依赖项)及其开源项目

  • 项目默认项目模板使用JQuery插入的Type脚本更新。
  • 改进了新的安全功能,并完全取消了其所有依赖框架的耦合

  • 更新的项目模板具有基于angular和json的配置以及增强的程序包与节点模块的支持。

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

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


2

顺便说一下,在linux apt和Docker软件包中,还有一个Mono运行时来替代CoreCLR。当要安装DNX时,Mono仍然是默认设置。关于“核心”的全部内容是,它是一个跨平台的.net框架,在某些时候托管ASP.NET 5应用程序将不会使用IIS,Apache,Mono等,而是使用DNX和Libuv。


1

.NET Core 1.0不是.NET 4.6.2(完整的.NET Framework)的下一个版本。如果是下一版本,则它应具有比上一版本更多的功能。但是根据Microsoft的说法,.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应用程序。

您可以在此处找到更多更新的信息。


1

ASP.NET Core,即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相同

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.