昨天晚上微软发布了.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主题网站提供了相关内容的高级别视图:

.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统一平台。你可以看到,我们正在从那种项目风格转向更具前瞻性的项目。很高兴看到平台在基本运行时间性能方面再次扩展,而且还有更多内容需要沿着这些路线发展。

相关连接:

.NET 6 RC1 正式发布的更多相关文章

  1. iNeuOS工业互联平台,PLC监测与控制应用过程案例。新闻:.NET 6 RC1 正式发布

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 2 1.   概述 iNeuOS工业互联网操作系统主要使用.netcore 3. ...

  2. .NET 7 RC1 正式发布

    从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月14日发布了 .NET 7 RC 1:https://devblogs.microsoft.com/dotnet/a ...

  3. .Net7 内容汇总(1)

    .Net7 RC1发布 在9月14号,.Net7 RC1正式发布了. 按照微软的说法 This is the first of two release candidates (RC) for .NET ...

  4. .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

    今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...

  5. ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢?

    ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢? RC 的意思是软件候选版本,就是不会有很大的改变,主要还是在除错方面. 来自收集的资料1引用: Alpha:是内部测试版,一般不向外部 ...

  6. Spring Cloud Hoxton正式发布,Spring Boot 2.2 不再孤单

    距离Spring Boot 2.2.0的发布已经有一个半月左右时间,由于与之匹配的Spring Cloud版本一直没有Release,所以在这期间碰到不少读者咨询的问题都是由于Spring Boot和 ...

  7. .NET 5.0 RC1 发布,离正式版发布仅剩两个版本

    原文:http://dwz.win/Qf8 作者:Richard 翻译:精致码农-王亮 说明:1. 本译文并不是完全逐句翻译的,存在部分语句我实在不知道如何翻译或组织就根据个人理解用自己的话表述了.2 ...

  8. 官宣!ElasticJob 3.0.0 版本正式发布

    ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.它通过弹性调度.资源管控.以及 ...

  9. .NET MAUI发布了期待已久的候选版本(RC1)

    作者:David Ortinau 我们激动地宣布在4/13/2022.NET多平台应用UI (.NET MAUI)发布了候选版本.SDK现在已经集成好了API,可以更新库,并为GA(通用可用性)兼容性 ...

随机推荐

  1. NDIS LWF:NdisFSendNetBufferLists蓝屏(DRIVER_IRQL_NOT_EQUAL_OR_LESS)

    调用NdisFSendNetBufferLists发送自定义数据包后蓝屏,蓝屏代码为DRIVER_IRQL_NOT_EQUAL_OR_LESS,如果创建的NBL都没问题,一定要确保该自定义的NBL要在 ...

  2. 【javaFX学习】(二) 面板手册

    移至http://blog.csdn.net/qq_37837828/article/details/78732591 更新 找了好几个资料,没找到自己想要的,自己整理下吧,方便以后用的时候挑选,边学 ...

  3. Apache网页优化与安全

    目录 一.Apache网页优化 1.1.概述 1.2.gzip介绍 1.3.Apache的压缩模块 二.网页压缩实验 2.1.检查是否安装mod_deflate模块 2.2.重新编译安装Apache添 ...

  4. spring security整体流程

    spring-security原理 图片中各个类的作用: 1JwtUser类:实现Springsecurity的UserDetails类,此类必须有三个属性 private String userna ...

  5. Redis如何实现分布式锁

    今天我们来聊一聊分布式锁的那些事. 相信大家对锁已经不陌生了,我们在多线程环境中,如果需要对同一个资源进行操作,为了避免数据不一致,我们需要在操作共享资源之前进行加锁操作.在计算机科学中,锁(lock ...

  6. Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)

    靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...

  7. noip12

    T1 类似于昨天的t3,先用单调栈求出管控区间,然后暴力求解30pts 我没取模还没开longlong,然后就爆0了 正解: 仍然是用单调栈求一下区间,用线段树维护一下余数,对于i所对应的区间\([l ...

  8. SpringBoot - 集成RocketMQ实现延迟消息队列

    目录 前言 环境 具体实现 前言 RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,记录下SpringBoot整合RocketMQ的方式,RocketMQ的安装可以查看:Windows下安 ...

  9. WPF LiveChart 图表详解

    //参考网址:https://www.cnblogs.com/zh7791/p/12617961.html 本文主要介绍LiveChart.WPF 中的图表的使用方法 类: 数据绑定, 数据显示样式等 ...

  10. java 搞笑注释

    // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\____ // . ' \\| ...