IRONSOFTWAREHOME

了解 .NET 版本:.NET Core、.NET Standard、.NET Framework 等

了解.NET版本: .NET Core、 .NET Standard、 .NET Framework等

Tim Corey

1h 25s

.NET、.NET SDK、.NET Core、.NET Standard 和 .NET Framework 等术语在.NET 生态系统中的应用可能会让人感到困惑。 在使用 Visual Studio 2022 的 C# 开发环境中,它们各自发挥着独特的作用,了解它们之间的差异对于为您的项目选择合适的目标框架至关重要。

本文以 Tim Corey 的视频".NET 版本详解 - .NET、.NET Core、.NET Standard、.NET Framework 等"为基础,旨在简化这些术语,并就哪些术语以及何时使用提供明确指导。

为什么 .NET Core 需要存在

.NET Framework,通常简称为 .NET,二十多年来一直是软件开发和桌面运行时的主要工具。 然而,由于其局限性,有必要创建 .NET Core。 Tim Corey 强调了几个关键原因:

1.补丁和解决方法:随着时间的推移,.NET Framework 积累了大量的补丁和解决方法,这大大降低了它的运行速度(1:35)。

2.Windows依赖性:.NET Framework与Windows深度集成,因此很难在其他平台上使用。 这种依赖性阻碍了跨平台开发(2:03)。

3.单体设计:.NET Framework 在设计时将所有内容都包含在一个软件包中,这样做虽然方便,但却导致系统臃肿,效率低下(2:25)。

4.概念过时:20 多年前开发的 .NET Framework 在设计时并没有考虑到现代互联网和移动应用(3:20)。

.NET 应用程序的结构

要了解 .NET Core 的优势,必须掌握 .NET 应用程序的结构。

正如 Tim Corey 解释的那样:

1.C# 源代码:您的 C# 代码首先会被编译成中间语言 (IL) 代码(5:49)。

2.通用语言运行时(CLR):然后由 CLR 执行 IL 代码。 .NET Framework 和 .NET Core 有不同的 CLR,但它们处理 IL 代码的方式类似,因此您的源代码在两个平台上的大部分内容保持不变(6:42)。

.NET Core 相对于 .NET Framework 的优势

.NET Core 运行时是为解决 .NET Framework 的不足而开发的开发框架。 Tim Corey 强调了其主要优点:

1.跨平台兼容性:与 .NET Framework 不同,.NET Core 可在多个平台上运行,包括 Windows、Mac、Linux、Android、iOS、Xbox、IoT 等。

2.性能:.NET Core 提供了显著的性能改进。 它消除了传统补丁,支持现代硬件和软件实践,比 .NET Framework 更快。

3.模块化:.NET Core 是模块化的,允许开发人员只包含必要的组件,从而减少开销并提高效率。

4.现代功能:.NET Core 具有更多开箱即用的现代功能,如内置依赖注入和日志记录,这些功能促进了开发中的最佳实践。

5.开放源代码:.NET Core 是开放源代码,鼓励社区贡献和透明开发。

6.符合行业标准:与仅限于 Windows 环境的 .NET Framework 不同,.NET Core 遵循行业标准,确保与现代技术的兼容性和集成性。

7.易于升级:.NET Core 的升级通常很简单,通常只需要更改版本号和更新 NuGet 软件包。 微软的这部分升级过程已经简化,与.NET Framework 相比,破坏性改动较少,而.NET Framework 的升级过程历来较为复杂,问题较多。

.NET Standard

Tim 解释说,.NET Standard 是一种规范,它定义了所有 .NET 平台都必须实现的一套 API,而不仅仅是一个运行时。它提供了统一的 API,确保不同 .NET 实现之间的代码兼容性。 这意味着您可以编写同时适用于 .NET Core 和 .NET Framework 的库。 在 33:35 处,Tim 讨论了 .NET Standard 直至最新版本的所有版本。 截图摘要如下:

.NET 版本的详细分类

.NET Framework 时间表

.NET Framework 自 2000 年代初就已出现,并与 Windows 紧密集成。 它适用于构建 Windows 桌面和网络应用程序,但跨平台能力有限。

.NET Framework 1.0(2002 年 1 月)

Tim Corey 描述说,.NET Framework 1.0 的最初发布是革命性的,它引入了通用中间语言的概念,允许多种编程语言协同工作(40:07)。 这个基础版本为各种语言提供了一个统一的平台,为今后的发展奠定了基础。

.NET Framework 2.0(2005 年 10 月)

三年后发布的.NET Framework 2.0 带来了重大改进和新功能,延续了该平台的发展(41:40)。 该版本的显著特点是增强了语言功能并支持更广泛的应用程序。

主要更新:

  • 2006年11月:推出 .NET Framework 3.0(41:43)。

  • 2007 年 11 月:.NET Framework 3.5 发布,这是一个重要的里程碑(41:49)。

  • 2010年4月:.NET Framework 4.0(最后一个主要版本)问世(42:13)。

  • 2012年8月:.NET Framework 4.5发布(42:50)。

  • 2019年4月:.NET Framework 4.8(最终小版本)发布(47:17)。

.NET Core 版本

.NET Core 1.0 (2016 年 6 月)

Tim Corey 将 .NET Core 1.0 称为功能有限的概念验证,旨在展示 .NET Core 的潜力(43:32)。 最初的版本奠定了基础,但由于功能有限,并未被广泛采用。

.NET Core 2.0 (2017 年 8 月)

作为功能更丰富的更新发布的 .NET Core 2.0 包括重要的进步,尤其是在网络应用程序开发方面(45:23)。 然而,这并不是一个 LTS 版本,Tim 强调指出,它包含了一些破坏性的改动,导致后来发布了一个更稳定的版本。

.NET Core 2.1(2018 年 5 月)

.NET Core 2.1 是一个 LTS(长期支持)版本,Tim 指出这对于需要稳定性和扩展支持的企业来说至关重要(45:42)。 这是一次重大更新,使 .NET Core 更适合生产使用。

.NET Core 3.0(2019 年 9 月)

.NET Core 3.0 引入了对桌面应用程序(包括 WinForms 和 WPF)的支持,将其用途扩展到网络应用程序之外(53:04)。 这一版本使 .NET Core 成为一个更全面的平台,吸引企业从 .NET Framework 迁移过来。

.NET Core 3.1 (2019 年 12 月)

在 3.0 的基础上,.NET Core 3.1 又是一个 LTS 版本,为桌面和网络应用程序提供了持续的支持和稳定性(53:16)。 Tim 解释说,这个版本标志着.NET Core 被认为功能完备且可靠,适合企业使用。

.NET 5 及其他

.NET 5.0(2020 年 11 月)

随着 .NET 5 的发布,微软将名称中的 "Core "去掉,以简化品牌(58:03)。 Tim 解释说,这一改动旨在减少 .NET Framework 和 .NET Core 之间的混淆。 .NET 5 是将 .NET 生态系统统一到一个名称下的重要一步。

.NET 6.0(2021 年 11 月)

.NET 6 延续了从 .NET 5 开始的年度发布周期(59:56)。 Tim 指出,包括 .NET 6 在内的每个新版本都是年度更新节奏的一部分,可以定期改进和添加功能。

.NET 7.0(2022 年 11 月)

.NET 7 遵循年度发布模式,通过微小的更新和改进进一步推进了平台的发展(59:56)。 Tim 讨论了这一版本及其前几版如何体现微软对 .NET 生态系统持续开发和创新的承诺的细节。

了解 .NET 版本和支持生命周期

Tim Corey 在(1:01:27)处详细解释了 .NET 版本及其支持生命周期。 以下是讨论要点的摘要:

支持生命周期:STS vs. LTS

Tim Corey 解释了两种支持窗口之间的区别:Standard Term Support (STS)Long-Term Support (LTS).

  • STS(标准期限支持):提供为期 18 个月的支持窗口。 例如,2020 年 11 月发布的 .NET 5 支持到 2022 年 5 月。2022 年 11 月发布的 .NET 7 也有类似的 18 个月支持窗口期,到 2024 年 5 月结束。

  • LTS(长期支持):提供 3 年的较长支持窗口。 .NET 6 于 2021 年 11 月发布,支持期至 2024 年 11 月。将于 2023 年 11 月发布的 .NET 8 将是下一个 LTS 版本,支持到 2026 年 11 月。

Tim 指出,虽然快速移动的应用程序开发人员可能更喜欢 STS 版本以获得最新功能,但公司通常更喜欢 LTS 版本以获得稳定性和更长时间的支持。

升级路径和版本发布

Tim Corey 概述了 .NET 版本的升级路径:

  • 从 .NET 5 到 .NET 6:两个版本都支持,有一年的重叠期。

  • 从 .NET 6 到 .NET 8:在 .NET 6 支持结束之前,您将有一整年的时间从 .NET 6 升级到 .NET 8。

  • 未来升级:按照这种模式,.NET 8(目前是最新版本)将一直支持到 .NET 10 的到来,因此您有足够的时间进行升级。

Tim 强调说,这种可预测的发布周期可以让公司满怀信心地计划升级。

微软的支持策略

Tim 讨论了微软的支持和开发方法:

  • 成本和复杂性:由于需要在多个版本之间维护安全更新,因此扩展对旧版本的支持可能既昂贵又复杂。 这就是微软采用更可预测、更可管理的支持策略的原因。

  • 模块化框架:.NET Core 和 .NET 的模块化方法可实现快速的功能更新和更易于管理的支持生命周期。

在 .NET Framework 和 .NET Core 之间做出选择

Tim Corey 建议何时使用不同的 .NET 版本:

  • .NET Framework:将其用于现有项目或支持 Windows XP 等旧版操作系统。

  • .NET Core(现为 .NET):对于新项目,请从最新版本的 .NET 开始。 从旧版本的 .NET Framework 升级到 .NET 可以显著提高性能。

ASP.NET与ASP.NET Core

Tim 解释了 ASP.NET 和 ASP.NET Core 之间的区别:

  • ASP.NET:基于 .NET Framework 构建,支持 Web 窗体、MVC 和 Web API。 ASP.NET Core 中尤其不包括 Web 窗体。

  • ASP.NET Core:用于在 .NET Core 上构建网络应用程序的模块化框架。 其中包括 Razor Pages、MVC、API、Blazor Server 和 Blazor WebAssembly。 ASP.NET Core 的设计与其前身相比更加灵活和现代化。

Tim 在 1:21:00 时澄清,ASP.NET Core 继续以新功能和更大的模块化支持网络开发,而 ASP.NET (Framework) 则更加传统,仅限于较旧的 .NET 版本。

结论

从 .NET Framework 的历史背景到 .NET Core 及其他的现代功能,Tim Corey 为您提供了一个清晰而富有洞察力的 .NET 生态系统导航指南。 他的视频解释了.NET版本的演变、.NET Core的必要性以及模块化和跨平台兼容性的好处。 无论您是在 .NET Framework 和 .NET Core 之间做出选择,还是了解各种 .NET 版本的支持生命周期,Tim 的解释都为您做出明智的开发决策提供了宝贵的路线图。

如需了解更多深入讨论和实际编码示例,请务必访问 Tim Corey 的 YouTube 频道IIAmTimCorey

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户