.NET 5预览版1简介

去年下半年,我们发布了.NET Core 3.0和3.1。在这些版本中,添加了Windows窗体(WinForms)和WPF,用于创建单页应用程序的ASP.NET Blazor桌面应用程序模型以及用于基于合同的跨平台消息传递的gRPC。我们还添加了用于创建服务的模板,用于与gRPC进行通信的客户端代码的冷生成,REST API服务等等。我们很高兴.NET Core 3已成为接受速度最快的.NET版本,并且在过去的一年中,我们又有100万用户。

我们还研究了这些发行版,以完成从.NET Framework迁移应用程序模型的过程。在.NET Core 3中,我们迁移了所有最常用的应用程序模型,并引入了新的跨平台基础结构,而不是未移植的基础结构。

预期.NET 5的下一个主要版本,我们将通过将.NET移动应用程序模型(Xamarin)包含在.NET 5中,继续将.NET集成到一个平台中。.NET5将包括ASP.NET Core,Entity Framework Core,WinForms, WPF,Xamarin和ML.NET。整个平台首次将统一的BCL(基类库)用于所有应用程序模型。版本5的存在高于.NET Core和.NET Framework的版本,这也清楚表明.NET 5是.NET的未来,NET是用于创建任何类型的应用程序的统一统一平台。

我们已经说了很多遍了,但是我们会再重复一遍。.NET Core,然后是.NET 5,是.NET,您应该使用它创建所有新应用程序。只要支持Windows本身,就将支持.NET Framework。我们将继续提供安全性和修复错误,以及更新网络和加密API。它将保持安全性并受到支持,可以在.NET Framework上运行较旧的应用程序。



安装.NET 5.0 Preview 1


今天,我们发布了第一个Preview .NET 5,其完整版本计划于今年11月底发布。


阅读.NET 5 Preview 1中的ASP.NET Core更新,以了解今天发布的ASP.NET Core。

预览1首次包含对Windows ARM64的支持。今天的版本还包括运行时.NET Core。我们期望在预览版2中添加SDK(ASP.NET核心,而不是WPF或Windows窗体)。以后的预览将包括WPF和Windows窗体。对Windows ARM64的支持也将移植到.NET Core 3.1。我们将在有关预览2的帖子中分享有关此内容的更多详细信息。

更新现有项目


您可以通过更新目标平台来升级现有项目,如下所示:

<TargetFramework>netcoreapp5.0</TargetFramework>

.NET 5的首要目标


  • 统一.NET SDK经验:
    • BCL ( ) .NET 5. Xamarin Mono BCL, .NET Core BCL, .
    • (Xamarin) .NET 5. , .NET SDK mobile. , «dotnet new XamarinForms» .
  • , : « », , , Window Desktop, Microsoft Duo (Android) iOS, , .
  • 支持多种平台的Web应用程序:一个Blazor项目,该项目支持可以在浏览器中,在移动设备上以及作为本机桌面应用程序运行的应用程序(例如Windows 10x)。
  • 本机云应用程序:具有小于50 MB的单个文件(.exe)的高性能微服务,并支持在本地和云中创建多个项目(API,Web界面,容器)。
  • 持续的改进,例如:BCL中算法的加速,运行时对容器支持的改进,对HTTP3的支持。

预览1尚未包含所有这些目标的结果,但是我们将在未来的预览中继续宣布更多功能。

预览1中的改进


预览1中的以下改进:

正则表达式性能改进


我们已在Regex引擎上进行了大量投资。在我们测试的许多表达式中,这些改进通常可以使生产率提高3-6倍,在某些情况下甚至更高。很快,我们将在博客文章中详细介绍这些改进。

提高RyuJIT中的代码质量


每个发行版均包含针对JIT生成的代码的一组性能改进。我们称这种增强为“ CQ”或代码质量。在大多数情况下,这些改进也适用于为准备运行的图像创建的代码。


event pipe


我们添加了有关在事件管道中加载程序集的信息。这项改进是通过Fusion Log Viewer获得的.NET Framework中类似诊断功能的可用性的开始  现在,您可以使用  dotnet-trace  通过以下命令收集此信息:跟踪程序集和事件管道一起加载中

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

介绍了工作流您可以查看简单测试应用程序的程序集加载信息。



事件分析API(事件管道)


事件管道是我们添加到.NET Core 2.2中的新子系统和API,可以在任何操作系统中运行性能诊断和其他功能。在.NET 5.0中,事件管道已得到扩展,以便探查器可以记录事件管道事件。对于以前使用ETW监视应用程序行为和性能的探查器工具而言,这种情况很重要。

GitHub存储库整合


作为.NET 5版本的一部分,我们  减少了GitHub上用于创建和打包.NET 的存储库的数量存储库边界对项目的许多方面都具有重大影响,包括组装和问题管理。使用.NET Core 1.0,我们在ASP.NET,EF和.NET Core中拥有超过100个存储库。现在一切都变了。我们还将几乎所有存储库迁移到dotnet org。

查看新的合并存储库:


All Articles