昨天晚上微软发布了.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. .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

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

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

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

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

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

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

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

  5. 微软.NET Core RC2正式发布,横跨所有平台

    .NET官方博客宣布了<Announcing .NET Core RC2 and .NET Core SDK Preview 1>,正式如期发布了.NET Core RC2, 现在可以放心 ...

  6. ASP.NET 5 RC1 升级 ASP.NET Core 1.0 RC2 记录

    升级文档: Migrating from DNX to .NET Core Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2 Migrating ...

  7. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布

    距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...

  8. Ionic2系列-将beta升级到RC1

    国庆节前Ionic2发布了RC0版本,已经接近正式版了,前不久Angular2和TypeScript2也已经发布了正式版.详情请参考官方博客: http://blog.ionic.io/announc ...

  9. 从ASP.NET 升级到ASP.NET5(RC1) - 翻译

    前言 ASP.NET 5 是一次令人惊叹的对于ASP.NET的创新革命. 他将构建目标瞄准了 .NET Core CLR, 同时ASP.NET又是对于云服务进行优化,并且是跨平台的框架.很多文章已经称 ...

  10. AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!

    文章更新: AppBox v6.0中实现子页面和父页面的复杂交互 AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox ...

随机推荐

  1. Mongodb在Linux下安装及配置

    1.下载mongodb的linux版本(注意32位和64位的区别),下载地址:http://www.mongodb.org/downloads 2.将下载的mongodb安装文件mongodb-lin ...

  2. Area(Pick定理POJ1256)

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5429   Accepted: 2436 Description ...

  3. Data Flow -&gt;&gt; Term Lookup

    Term Lookup是和Term Extraction相反的一个组件.Term Extraction是为了找出term,Term Lookup是利用我们关心的term list来找出某个文本里面包含 ...

  4. HDOJ1253 胜利大逃亡 BFS

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  5. JAVASCRIPT 框架&gt;&gt;

    jQuery jQueryjQuery 是目前最受欢迎的 JavaScript 框架 jQuery 是为处理 HTML 事件而特别设计的<script type="text/javas ...

  6. d3.csv()后获取的数据不是数组,而是对象

    我的csv文件: year,population 1953,5.94 1964,6.95 1982,10.08 1990,11.34 2000,12.66 2010,13.40 使用d3.csv()输 ...

  7. GWAS研究可利用的数据库(持续更新)

    1.列表包括数据库名称.表型.是否能下载到基因型(genotype).是否能下载到GWAS结果文件(P值.效应值.SNP位点).目前收集到的有如下: 参考到这些数据库的文献:Genome-wide a ...

  8. 将python、pip 加入环境变量

    加python: CMD里输:    path=%path%;C:\Python27 其中   C:\Python27  为python的exe所在的文件夹 加pip: CMD里输:    path= ...

  9. centos7 查看防火墙状态

    [root@xxx ~]# firewall-cmd --state not running

  10. ubantu查看进程操作

    可以使用ps命令.它能显示当前运行中进程的相关信息,包括进程的PID.Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以 ...