前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET 6 RC1 正式发布

.NET 6 RC1 正式发布

作者头像
张善友
发布2021-09-23 15:06:27
4800
发布2021-09-23 15:06:27
举报

昨天晚上微软发布了.NET 6的两个RC版本中的第一个版本,该版本将于11月正式发布,作为在开源MIT协议下整合所有不同的.NET开发模组件的开源跨平台实现。这是一个从2014年开始,持续多年的,以改变应用开发游戏规则的努力,由于COVID-19大肆虐,推迟了一年,这个版本终于完成了,将基于Mono的Xamarin 也整合到了.NET 6, 不过据官方博客说明,MAUI 在.NET RTM上仍然是预览版,要到2022年才能够正式发布。

过去的一年时间内,微软.NET团队和社区一起在6个预览版本中加入了大量的功能特性,从RC1开始不再增加新的功能特性,只专注于功能的稳定性和性能优化,不过从.NET 6开始,.NET 框架支持把一些预览的功能提供给用户使用,因此从RC1开始已准备好进行实际生产测试,并且提供了生产可用的支持,使用过程中问题可以寻求微软的技术支持。因此,今天的RC1发布公告并不关注新的好东西,而是.NET 6的基础性功能,其中还有许多功能在一段时间内无法完全实现。微软的.NET主题网站提供了相关内容的高级别视图:

image
image

.NET 团队项目经理理Richard Lander 在 9 月 14 日的一篇宣布.NET 6 RC1博文中说, "在每一个版本中,我们都会规划一些需要多年才能完成的项目,而且(根据定义)在一段时间内无法实现其全部价值,鉴于这些功能尚未完全实现,您会注意到这篇文章中对.NET 7 及以后这些功能可能采用的功能不做介绍。

以下是Lander 强调的此类功能的简单摘要:

  • 源码构建:GitHu仓库说:"源码构建的关键目标是满足常用Linux发行版的官方封装规则,如Fedora和Debian。许多 Linux 发行版都有类似的规则。这些规则往往有两个主要原则:一致的可重复性,以及一切事物的源代码。在此处查看更多有关此信息
  • 配置文件引导优化 (PGO):在5月的"关于PGO的对话"中,微软这样介绍PGO:"PGO通过在优化过程中添加新的信息来提高应用程序的性能,而优化过程取决于应用程序的执行方式,而不仅仅是程序的代码。今天,Lander说,开发人员可以使用PGO:
    • 以更高的质量编译启动代码。
    • 通过以低质量(或根本不)编译低使用代码来减少二进制大小。
    • 重新排列应用程序二进制文件,以便在启动时使用的代码在文件开始附近共用。

    .NET 团队一直在努力使在.NET 6 中有最佳的 PGO 体验。目前尚未启用其他人使用 PGO 来优化应用。这就是接下来的.NET 7,在此处查看更多有关此信息

  • 动态 PGO:这涉及到改进实时 (JIT) 编译器生成和消耗配置文件数据的方式,强调所有事情在过程中发生的"动态"场景。"动态PGO是静态PGO系统的镜像,当静态 PGO 与Crossgen 2 集成时,动态 PGO 与 RyuJIT 集成。如果说静态 PGO 需要单独的训练活动并使用特殊工具,则动态 PGO 是自动的,并且使用运行应用程序收集相关数据。静态 PGO 数据持续存在的地方,每次应用运行后都会丢失动态 PGO 数据。动态 PGO 类似于跟踪 JIT。在此处查看更多有关此信息
  • Crossgen2:Crossgen2 取代了Crossgen:Crossgen2 已启用用于所有现有的Crossgen方案,Microsoft 还从 SDK 中删除了(旧的)Crossgen,使其不再可访问且无法使用。"Crossgen (1 和 2) 使预编 IL 能够将本地代码作为发布步骤。预编主要有利于改善启动。Crossgen2 是一种从零开始的实现,已被证明是代码生成创新的卓越平台。例如,Crossgen2可以生成比Crossgen1更广泛的IL模式集的代码。在此处查看更多有关此信息
  • 安全缓解措施:对于此版本,团队添加了两个关键安全措施的预览支持,这些安全措施将在默认情况下在.NET 7 中启用:
    • CET:来自英特尔去年推出的控制流强制执行技术,旨在防范常见的恶意软件威胁。Lander 说,在一些较新的英特尔和 AMD 处理器中,它增加了硬件功能,可以防止某些常见的攻击类型,包括控制流劫持。在此处查看更多有关这些内容
    • W=X:这代表"写xor执行",维基百科介绍,并发音为W xor X。Lander 说,由于它能够阻止基本的攻击路径,不允许同时编写和执行内存页面,因此这是一种非常有效的基本缓解措施,微软避免了使用更高级的缓解措施,因为它们可能因缺乏这种功能而绕过。相反,微软将增加其他补充缓解措施,如CET。在此处查看更多有关此信息
  • HTTP/3:HTTP协议的第三个版本已经被正式使用,它运行在QUIC加密的通用传输协议上,该协议在单个连接上对多个数据流进行多路复用。作为在.NET 6预览版中提出的正式草案,Lander说,它使用QUIC解决了现有的功能和性能挑战。"我们已经将HTTP/3纳入.NET 6,这样你就可以开始尝试它了,这是一个预览功能,因此不受支持。可能有些问题,需要与其他服务器和客户端进行更广泛的测试,以确保兼容性。在此处查看更多有关此信息
  • SDK 工作负载:这是.NET 6 预览 5中强调的 SDK 工作负载的新方案,使 Microsoft 能够在不增加 SDK 大小的情况下为新应用程序类型添加支持。它正在取代旧的单体 SDK 方法,这种方法因建造时间长和分布大小大而不负重任。Lander 说:"在将来的版本中,我们打算删除更多的组件,并使它们成为可选的,包括 ASP.NET 和 Windows 桌面。"最后,我们可以想象 SDK 仅包含 MSBuild、NuGet、语言编译器和工作负载获取功能。我我们非常希望结合广泛的.NET 生态系统,并提供完成特定工作所需的软件。您可以看到此模型如何更好地用于 CI 场景,使 dotnet 工具能够为正在构建的特定代码获取一组定制组件。在此处查看更多有关此信息

Lander在总结中说。".NET 6 有很多新的功能和功能,是为现在和未来,其中大部分已经在之前所有的预览版本,也在即将到来的.NET 6 正式发布博文里,同时,看到.NET 6 中的新功能为接下来的工作奠定了基础,这令人鼓舞。这些都是功未来的大功能,将推动平台在明显和非明显的方式前进。

"在前几个版本中,团队需要专注于将.NET Core 构建为功能齐全、整体的开源和跨平台开发系统。接下来,我们专注于与Mono和Xamarin统一平台。你可以看到,我们正在从那种项目风格转向更具前瞻性的项目。很高兴看到平台在基本运行时间性能方面再次扩展,而且还有更多内容需要沿着这些路线发展。

相关连接:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档