.NET 5.0 RC2 发布,正式版即将在 11 月 .NET Conf 大会上发布

今天(10月13日)我们发布了 .NET 5.0 候选版本 2(RC2),它是 11 月 .NET 5.0 正式版发布前的最后一个 RC 版本。RC2 是一个“上线”版本,表示你可以在生产环境中使用它。与此同时,我们正在找寻任何遗漏的关键 Bug 报告,这些 Bug 应该在最终发布前得到修复。

我们今天也发布了 ASP.NET Core 和 EF Core 的 RC2 版本。

你可以下载适用于 Windows、macOS 和 Linux 的 .NET 5.0 版本:

安装程序和二进制包

容器镜像

快速安装程序

发布说明

已知问题

GitHub Issue 跟踪

你需要最新的预览版 Visual Studio (包括 Visual Studio for Mac) 才能使用 .NET 5.0。

.NET 5.0 包括许多改进,特别是单文件应用程序、、功能更强的 JsonSerializer API、一套完整的可空引用类型标注、新的Target Framework 名称,以及对 Windows ARM64 的支持。在 .NET 库、GC 和 JIT 中,性能得到了极大的提高。我们花了很大的工作在 ARM64 的性能上,它有了更好的吞吐量和更小的二进制文件。.NET 5.0 包含了新的语言版本:C# 9.0 和 F# 5.0。你可以查看一些 .NET 5.0 示例,以便你可以亲自尝试这些功能。

今天是个大好日子,因为我们将拉开 2020 年 .NET@Microsoft 内部会议的序幕。届时将有许多来自 .NET 团队的演讲者,也有来自服务团队的开发人员和架构师,他们依靠 .NET 来驱动微软云,分享他们的胜利,也分享他们的挑战。我的演讲(不出所料)是“.NET 5.0 中有什么新内容”。我的演讲将很简单,会涵盖我的 .NET 5.0 博文所讲到的内容!这将是一场精彩的演讲。更重要的是,这次会议是我们的机会,让我们说明为什么微软团队应该在 .NET 5.0 发布后尽快采用它。我所知道的至少有一个大型团队正在生产中运行 RC1。微软官方.NET网站 从 Preview 1 开始就一直在运行.NET 5.0,现在正在运行 RC2。本周微软团队向我们展示的案例,会与我在所有这些 .NET 5.0 博客文章中向你展示的案例非常相似。.NET 5.0 是一个伟大的版本,它将从根本上改善你的应用程序。

说到会议,请记住 .NET Conf 2020 的日期(译注:11月10日至12日)。今年,.NET 5.0 将在 .NET Conf 2020 上发布!请来庆祝并了解新版本。我们还将庆祝我们的 10 周年纪念日,我们正在努力创造更多的惊喜,值得你的期待。

就像我为 .NET 5.0 Preview 8 和 .NET 5.0 RC1 所做的那样,我选择了一些功能来更深入地介绍,并让你了解如何在实际情况中使用它们。这篇文章专门介绍 C# 9 模式匹配、Windows ARM64 和 ClickOnce。

C# 9 模式匹配

模式匹配是在 C# 7.0 中加入的语言特性。不妨让 Mads 重新介绍一下这个概念,这是他最初介绍这个特性时的说法:

C# 7.0 引入了模式的概念,抽象地说,模式是一种语法元素,它可以测试一个值是否具有一定的“形状”,当它具有一定的“形状”时,就从该值中提取信息。

这是一个非常好的描述,完美的措辞。

C# 团队在 C# 7、C# 8 和 C# 9 的每个版本中都添加了新的模式。在这篇文章中,你将看到这些语言版本中的每一种模式,但我们将重点关注 C# 9 中的新模式。

C# 9 中的三个新模式是:

关系模式,使用关系运算符,如 < 和 >=。

逻辑模式,使用关键字 and、or、not。一个简短的例子是 foo is not null。当你想在一个模式中比较多个事物时,这种类型的模式是最有用的。

简单类型模式,只使用一个类型,而不使用其他语法进行匹配。

我是 BBC 夏洛克系列的忠实粉丝。我写了一个小程序,可以决定一个给定的角色是否应该访问该系列中的某个内容。很简单,这个应用的编写有两个限制条件:忠于剧中的时间线和人物,这是一个很好的模式演示。如果有的话,我怀疑我在第二个约束条件上最失败。在一个特定的应用程序中(尤其是这样一个小应用程序),你会发现一套比人们预期的更广泛的模式和风格。

当我在使用模式时,我有时想做一些与我所熟悉的模式实现稍微不同的事情,但不知道如何扩展该模式来满足我的目标。鉴于这个示例,我希望你能发现更多的方法,也许你以前不知道这些可以扩展你熟悉的模式的技巧。

应用内有两个 switch 表达式,让我们从两个中较小的一个开始。

public static bool IsAccessOKAskMycroft(Person person) => person switch { // Type pattern OpenCaseFile f when f.Name == "Jim Moriarty" => true, // Simple type pattern Mycroft => true, _ => false, };

前两种模式是类型模式。第一个模式是 C# 8 就支持的。第二种--Mycroft--是新的简单类型模式的一个例子。在 C# 8 中,这个模式需要一个标识符,就像第一个模式一样,或者至少需要一个弃元,比如 Mycroft _。在 C# 9 中,不再需要标识符。是的, Mycroft 是应用程序中的一个类型。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgygj.html