.NET、.NET Core、.NET Standard、.NET Framework 之间的差异以及解决困惑

问题描述 投票:0回答:3

我对 .NET 领域还是个新手。

所有这些都存在很大的困惑,我真的无法弄清楚。我搜索了很多,但找不到任何简单直接的 .NET 解释(也指所有其他不同版本的名称,如标题所示)

所以我的问题是为什么 .NET 有不同的名称(正如我在标题中所写的)。哪一个适合谁?

c# .net .net-core .net-standard .net-framework-version
3个回答
42
投票

这里是.NET Standard的简化解释,包括.NET的不同名称和版本:

.NET 标准: 这是一个规范,定义了 .NET 应用程序可以使用的一组通用 API。这使得编写可以在不同 .NET 平台上运行的代码成为可能,例如 .NET Framework、.NET Core 和 .NET 5 及更高版本。

.NET Framework:这是.NET平台的原始版本,主要用于构建Windows桌面和Web应用程序。它仍然受支持,但被认为是遗留技术。

.NET Core:这是 .NET 的跨平台版本,旨在克服 .NET Framework 的一些限制。它轻量、快速,适合构建可在 Windows、macOS 和 Linux 上运行的跨平台应用程序。 .NET Core 是新项目的推荐选择。

.NET 5 及更高版本 Microsoft 决定简化命名,并将 .NET Core 和 .NET Framework 融合到一个名为 .NET 5 的单一平台中。这个新平台受到完全支持,是新项目的推荐选择。

总之,如果您要开始一个新项目,您应该使用最新版本的 .NET Standard,例如 .NET Standard 2.1 或更高版本。这将为您提供最现代的功能和改进,并且还将使您的应用程序更加跨平台。

更新详细视频

enter image description here


18
投票

.NET 是一组跨语言的编译器和工具,由一组底层运行时库支持。 C# 是主要的 .NET 语言,但 VB.NET 和 F# 也是 .NET 语言。

.NET Framework 仅适用于 Windows。 最终版本 (v4.8.x) 尚未积极开发,但这并不意味着它不会获得安全更新,并且只要支持 Window 11(可能是更高版本的操作系统),它就会受到支持。 https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-framework

.NET Core 支持多种操作系统(包括 Windows、Linux、macOS、iOS、Android 操作系统等)。 它完全是从头开始重写的,虽然它与.NET Framework 具有很大的兼容性,但在很多地方还是有很大不同的。 https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet

.NET 5 及更高版本只是 .NET Core 版本 5 及更高版本。 5 被选择为高于 .NET Core 3 和 .NET Framework 4.8。 (没有.NET Core 4.X)

.NET Standard 是一个中间库,允许在 .NET Framework 和 .NET Core 之间共享代码。 理论上,如果你将代码编译为 .NET Standard,它应该与 Framework 和 Core 兼容。

如果您正在寻求为哪个版本的 .NET 编写代码的建议(SO 上实际上不允许),那么通常会是 .NET Core,除非您需要仅在 .NET 中可用的许多仅限 Windows 的 API 之一框架(虽然像 WCF 这样的东西现在已经在 .NET Core 上了)。


-3
投票

据我所知,.NET只是一个框架,但它有一个问题,所以微软提出了.NET Core来使其跨平台兼容(在不同的操作系统上工作)。然后他们停止更新 .NET,只开发 .NET Core。然后他们意识到,当你有一个空名称“.NET”时,为什么要使用命名“.NET Core”,因为记住他们停止更新 .NET,所以它已经消失了。这就是为什么在版本 5 或其他版本之后,.NET Core 被重命名为 .NET。所以,今天我们使用.NET,它实际上是.NET Core。旧的 .NET 已经消失了。

说到 .NET 标准,过去用于将旧的 .NET 与 .NET Core 链接起来,但一旦他们只有 .NET(新的 .NET Core),就不再需要 .NET 标准了。这是因为旧的 .NET 已经消失,所以不需要链接任何东西。只剩下一件事了 - .NET,它实际上曾经是 .NET Core。

© www.soinside.com 2019 - 2024. All rights reserved.