.NET 5.0大一统的框架

微软于2020年11月10日发布.NET 5.0。这是一个主要版本-包括C#9F#5-具有一系列新功能和引人注目的改进。Microsoft和其他公司的团队已经在生产中以及性能测试中积极使用它。这些团队向我们展示了出色的结果,这些结果证明了性能的提高和/或降低其Web应用程序托管成本的机会。自预览版1开始,我们一直在5.0上运行我们自己的网站到目前为止,我们已经看到并听到的是,.NET 5.0带来了巨大的价值,而无需进行大量的升级。对于您的下一个应用程序来说,这是一个不错的选择,并且是从早期.NET Core版本进行的直接升级。我们希望您喜欢在台式机,笔记本电脑和云实例上使用它。

查看当前使用版本

dotnet --info

安装的所有版本 包括版本地址

ASP.NET CoreEF CoreC#9F#5也于同天发布。.NET Conf 2020(我们的免费和虚拟会议)今天在这里举行,您可以了解所有新版本。

您可以下载适用于Windows,macOS和Linux的.NET 5.0,适用于x86,x64,Arm32,Arm64。

对于Visual Studio用户,您需要Visual Studio 16.8或更高版本才能在Windows上使用.NET 5.0,并在macOS上使用Visual Studio for Mac的最新版本C#扩展Visual Studio代码已经支持.NET 5.0和C#9。

.NET 5.0是我们.NET统一之旅中的第一个版本。我们构建.NET 5.0是为了使更多的开发人员能够将他们的.NET Framework代码和应用程​​序迁移到.NET 5.0。我们还在5.0中完成了许多早期工作,以便Xamarin开发人员在发布.NET 6.0时可以使用统一的.NET平台。有关.NET统一的更多信息,请参见后面的内容。

现在是时候呼吁与为.NET项目做出贡献的每个人进行令人难以置信的合作了。此版本将第五个主要的.NET版本标记为一个开源项目。现在,在GitHub上dotnet org中,由个人,小型和大型公司(包括.NET Foundation公司赞助商)组成的大型社区,就.NET的各个方面共同合作.NET 5.0的改进是许多人,他们的努力,精巧的想法以及他们对平台的关心和热爱的结果,这些都是Microsoft所负责的项目之外的事情。每天,由致力于.NET的核心团队组成的团队,向向.NET 5.0(及以前版本)做出贡献的所有人表示非常感谢

我们早在2019年5月就引入了.NET 5.0,甚至还设定了2020年11月的发布日期。从那篇文章中可以得出:“我们将在今年9月发布.NET Core 3.0,在2020年11月发布.NET 5,然后我们打算每年11月每年发布一次主要版本的.NET。” 您可能会认为,鉴于今年面临的所有挑战,“ 2020年11月”这张支票无法兑现,但是.NET 5.0已按时发布。感谢团队中实现这一目标的每个人!我知道这并不容易。展望未来,您应该期望.NET 6.0在2021年11月发布。我们打算在每年11月发布新的.NET版本。

该博客的其余部分致力于突出显示和详细说明.NET 5.0中的大多数改进。我们的.NET统一愿景也有更新。

.NET 5.0亮点

.NET 5.0有许多重要的改进

我为.NET 5.0预览文章编写了许多示例。您可能想看看.NET 5.0示例,以了解有关C#9和库新功能的更多信息。

平台和Microsoft支持

.NET 5.0有一个几乎相同的平台支持矩阵作为.NET 3.1的核心,适用于Windows,MacOS和Linux操作系统。如果在支持的操作系统上使用.NET Core 3.1,则大多数情况下应该应该能够在同一操作系统版本上采用.NET 5.0。.NET 5.0最重要的新增功能是Windows Arm64。

.NET 5.0是当前版本这意味着它将在.NET 6.0发布后的三个月内得到支持。因此,我们希望在2022年2月中之前支持.NET5.0。.NET6.0将是LTS版本,并且将像.NET Core 3.1一样受三年支持。

统一平台愿景

去年,我们分享了统一的.NET堆栈和生态系统愿景给您带来的价值是,您将能够使用一组API,语言和工具来针对广泛的应用程序类型,包括移动,云,桌面和IoT。您可能会意识到,如今已经可以使用.NET定位广泛的平台,但是,例如,这些工具和API在Web和Mobile上并不总是相同的,也不是同时发布的。

作为.NET 5.0和6.0的一部分,我们将.NET统一为一种产品体验,同时使您能够仅选择要使用的.NET平台的各个部分。如果要定位到Mobile而不是WebAssembly,则无需下载WebAssembly工具,反之亦然。与ASP.NET Core和WPF相同。您还将有一种更简单的方法来从命令行获取所需的所有.NET工具以及构建包和运行时包。我们正在为.NET平台组件提供包管理器体验(包括使用现有的包管理器)。这对于许多情况来说都是很棒的。快速构建开发环境和CI / CD可能是最大的受益者。

我们原本打算使用.NET 5.0交付整个统一愿景,但是在全球大流行之后,我们不得不适应客户不断变化的需求。我们一直在与来自世界各地的公司的团队合作,他们需要帮助以加快其对云技术的采用。他们也已经适应了客户不断变化的需求。因此,我们将在两个版本中实现这一愿景。

实现这一愿景的第一步是整合.NET仓库,其中包括很大一部分的Mono。为.NET运行库和库提供一个存储库是在各处交付相同产品的前提。它还有助于进行广泛的更改,这些更改会影响运行时和库,这些存储库以前具有回购边界。有些人担心大型回购交易将更难管理。事实并非如此。

在.NET 5.0版本中,Blazor是利用回购合并和.NET统一的最佳示例。Blazor WebAssembly的运行时和库现在是从合并的dotnet /运行时仓库中构建的例如,这意味着服务器上的Blazor WebAssembly和Blazor使用完全相同的代码.NET 5.0之前的Blazor并非如此。我们为Blazor WebAssembly采取的方法与在.NET 6.0中使用Xamarin的方法非常相似。List<T>

.NET Framework仍然是受支持的Microsoft产品,并且每个新版本的Windows都将继续支持.NET Framework。去年,我们宣布已停止向.NET Framework添加新功能,已向.NET Core添加.NET Framework API这意味着现在是考虑将.NET Framework应用程序移至.NET Core的绝佳时机。对于.NET Framework客户端开发人员,.NET 5.0支持Windows窗体和WPF。我们已经从许多开发人员那里听说,从.NET Framework进行移植非常简单。对于.NET Framework服务器开发人员,您需要采用ASP.NET Core才能使用.NET 5.0。对于Web Forms开发人员,我们认为Blazor通过高效且更加现代的实现方式提供类似的开发人员体验。WCF服务器和Workflow用户可以查看支持这些框架的社区项目从.NET框架到.NET核心移植文档是一个良好的开端。综上所述,如果您对自己的经验感到满意,那么将应用程序保持在.NET Framework上是个不错的方法。

Windows团队正在研究Reunion,这是UWP和相关技术的下一步。我们一直与Reunion团队合作,以确保.NET 5.0和更高版本可以与WinUI和WebView2很好地配合使用。Project Reunion回购是了解最新进展的最佳场所。

让我们切换到5.0版本中的新增功能。

语言能力

C#9F#5是.NET 5.0版本的一部分,并包含在.NET 5.0 SDK中。Visual SDK也包含在5.0 SDK中。它不包括语言更改,但进行了改进以支持.NET Core上的Visual Basic应用程序框架。

C#源代码生成器是C#编译器的一项重要新功能。从技术上讲,它们不属于C#9,因为它没有任何语言语法。请参阅新的C#源代码生成器示例,以帮助您开始使用此新功能。我们希望在.NET 6.0及更高版本中的.NET产品更多地使用源生成器

为了亲自尝试新版本,我们中的一些人决定更新dotnet / iot存储库,以使用新的C#9语法并以.NET 5.0为目标。通过采用新的语法,这些更改导致删除了超过2k行代码。它使用顶级程序,记录,模式和开关表达式。它也已更新,以利用.NET库中完整的可空注释集。我们还更新了.NET IoT文档我们将看一下该回购中的一些示例,以探索C#9。

https://devblogs.microsoft.com/dotnet/announcing-net-5-0/?WT.mc_id=DOP-MVP-5003704

posted @ 2021-02-22 09:45  小y  阅读(843)  评论(0编辑  收藏  举报