亲宝软件园·资讯

展开

.NET 5 Preview 1发布

芝麻麻雀 人气:0
去年年底,我们发布了`.NET Core 3.0`和`3.1`。这些版本添加了对桌面应用程序模型:Windows Forms(Winforms)、WPF,用于构建单页应用程序的`ASP.NET Blazor`和基于消息传递的跨平台的`gRPC`支持。我们还添加了用于构建服务的模版,用于与`gRPC`进行通信的客户端代码生成、`REST API`服务等等。我们很高兴看到`.NET Core 3`成为有史以来最快的`.NET`版本,并且在去年又增加了100万用户。 我们与这些版本进行了交流,以结束从`.NET Framework`移植到`.NET Core 3`应用程序模型的过程,我们已经移植了所有最常用的应用程序模型,并引入了更新的跨平台框架来替代我们未移植的框架。 当我们期待写一个主要版本`.NET 5`时,我们将通过在`.NET 5`中包含的`.NET`移动设备应用程序模型(`Xamarin`),继续将`.NET`统一到一个平台中。`.NET 5`将包含`ASP.NET Core`,`Entity Framework Core`,`WinForms`,`WPF`,`Xamarin`和`ML.NET`。整个平台将首次为所有应用城西模型使用统一的`BCL(Base Class Libraries)`。拥有比`.NET Core`和`.NET Framework`都更高的版本5,这也清楚表明`.NET 5`是`.NET`的未来,它是用于构建任何类型的应用程序的单个统一平台。 我们已经说过很多次了,但是我们将再次重申。`.NET Core`和后面的`.NET 5`是你应当使用`.NET`构建所有新应用程序。只要在`Windows`平台本身,`.NET Framework`仍将受到支持。我们将继续提供安全性和错误修复,并保持网络和加密API在最新状态。将较旧的应用程序保留着`.NET Framework`上将保持安全并受到支持。 ## 安装`.NET 5 Preview 1` 今天,我们将发布`.NET 5`的第一个预览版,该预览版计划于今年11月下旬发布到GA(一般可用性)。 * [.NET 5.0 Preview 1 SDK](https:/https://img.qb5200.com/download-x/dotnet.microsoft.comhttps://img.qb5200.com/download-x/downloadhttps://img.qb5200.com/download-x/dotnet-core/5.0) * [.NET 5.0 Preview 1 Runtime](https:/https://img.qb5200.com/download-x/dotnet.microsoft.comhttps://img.qb5200.com/download-x/downloadhttps://img.qb5200.com/download-x/dotnet-core/5.0) 请参阅`.NET 5 Preview 1`中的`ASP.NET Core`更新,以了解今天发布的`ASP.NET Core`版本。 `Preview 1`包括首次对`Windows ARM64`的支持。今天发布的版本包括对`.NET Core`的运行时。我们希望`Preview 2`包含`SDK`(`ASP.NET Core`,但不包含`WPF`或`Windows Forms`)。稍后的预览版将包括`WPF`和`Windows Forms`。对`Windows ARM64`的支持也将反向移植到`.NET Core 3.1`版本中。 ## 更新现有项目 你可以通过更新目标框架来更新现有项目,如下所示: ``` ``` ## `.NET 5`的高级目标 让我重点介绍`.NET 5`的一些高级目标: * 统一的`.NET SDK`经验: - 所有`.NET 5`应用程序中的单个`BCL(Base Class Libraries)`。现在的`Xamarin`应用程序使用`Mono BCL`,但是将转向`.NET Core BCL`,从而改善了我们应用程序模型之间的兼容性。 - 移动开发(`Xamarin`)已经集成到`.NET 5`中。这意味着`.NET SDK`将支持移动。例如,你可以使用`dotnet new XamarinForms`创建移动应用程序。 * 支持多种平台的原生应用程序:支持应用程序的“单个设备”项目,该应用程序可以使用这些平台上的支持的原生控件在多个设备商运行,例如`Window Desktop`,`Microsoft Duo(Android)`和`iOS`。 * 支持多种平台的`Web`应用程序:支持应用程序的`Single Blazor`项目,该应用程序可以在浏览器中,在移动设备上以及作为本机桌面应用程序运行(例如`Windows 10x`)。 云原生应用程序:高性能,单文件(.exe)<50MB的微服务,并支持在本地和在云中构建多个项目(`API`,`Web`前端,容器)。 * 持续改进,例如:在`BCL`中更快的算法,运行时中对容器的更好支持,对`HTTPS3`的支持。 今天的第一个预览版尚未包含支持这些高级目标的所有工作,但我们将在未来的预览版中继续宣布更多功能。 ## `Preview 1`的改进 `Preview 1`中有以下改进: #### 正则表达式性能改进 我们已对`Regex`引擎进行了重大改进。在我们尝试过的许多表达式中,这些改进通常可以将吞吐量提高3-6倍,在某些情况下甚至可以提高更多。我们即将发布一篇博客文章,其中将详细介绍这些改进。 #### `RyuJIT`中代码质量的改进 每个版本都对`JIT`生成的代码进行了一系列性能改进。我们将这些类型的改进称为`CQ`或代码质量。在大多数情况下,这些改进也适用于为准备运行的图像生成的代码。 `Preview 1`中有以下改进: * [`null`检查的改进](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/1735) - 在更多情况下,通过观察证明不需要使用`null`检查的更多模式,无需生成`null`检查。 * [调整的通用子表达式评估(CSE)](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/1463) - `JIT`查找并折叠只需要评估一次的重复表达式(Wiki)。 * [优化“constant_string”.Length](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/issues/5310) - 优化此模式并将代码折叠为正确的整数值。 * [`JIT`:在变体之前构建基本的`pred`列表](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/1309) - 对`JIT`中阶段进行重新排序以允许焦躁使用密钥优化,从而可以提高代码质量,并减少后续阶段的工作量,从而增加`JIT`吞吐量(参考PR中的“TP”)。 ## 装配负载诊断已添加到事件管道 我们已将程序集加载信息添加到事件管道。这项改进开始提供类似的诊断功能(与.NET Framework一起使用[Fusion Log Viewer](https:/https://img.qb5200.com/download-x/docs.microsoft.com/zh-cnhttps://img.qb5200.com/download-x/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer)的一部分)的开始。现在,你可以使用`dotnet-trace`通过以下命令来收集此信息: ``` dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID] ``` 使用[事件管道的跟踪程序集加载](https://github.com/richlander/testapps/tree/master/trace-assembly-loading)中介绍了工作流。您可以查看简单测试应用程序的程序集加载信息。 ![](https://img2020.cnblogs.com/blog/1746998/202003/1746998-20200317215619037-108608906.png) ## 事件管道探测器API 事件管道是我们在`.NET Core 2.2`中添加的新子系统和API,可以在任何操作系统上执行性能和其他诊断调查。在`.NET 5.0`中,事件管道已得到扩展,以使探查器能够写入事件管道事件。对于以前依靠`ETW`监视应用程序行为和性能的分析探查器,此方案至关重要。 ## `GitHub`repo合并 作为`.NET 5`版本的一部分,我们减少了用于构建和打包`.NET`的`GitHub`存储库的数量。Repo边界对项目的许多方面都具有重大影响,包括构建和问题管理。使用`.NET Core 1.0`,我们在`ASP.NET`,`EF`和`.NET Core`中拥有超过100个存储库,通过此最新版本,我们现在可以一方面计入主存储库。我们还将几乎所有存储库都移到了`dotnet`组织。 查看新的合并仓库: * [dotnet/runtime](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime) (是dotnet/corefx,dotnet/coreclr,和dotnet/core-setup) * [dotnet/aspnetcore](https://github.comhttps://img.qb5200.com/download-x/dotnet/aspnetcore) (aspnet组织中的几个仓库) * [dotnet/sdk](https://github.comhttps://img.qb5200.com/download-x/dotnet/sdk) ( 是dotnet/sdk, dotnet/cli) ## 结束语 我们希望你对`.NET 5`正在进行的工作感到兴奋!为`.NET 5`做准备的最好方法是将所有的`.NET Core`应用程序迁移到`3.1` - 我们将使从`.NET Core 3.1`到`.NET 5`的过渡尽可能轻松。而且,如果你仍在`.NET Framework`上构建应用程序,请放心将这些应用程序放在`.NET Framework`上,但请考虑对所有新应用程序使用`.NET Core 3.1`。`.NET`有很多令人兴奋的事情! [原文](https:/https://img.qb5200.com/download-x/devblogs.microsoft.comhttps://img.qb5200.com/download-x/dotnet/announcing-net-5-0-preview-1/)

加载全部内容

相关教程
猜你喜欢
用户评论