.NET 6 RC1 正式发布
昨天晚上微软发布了.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 中启用:
- 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统一平台。你可以看到,我们正在从那种项目风格转向更具前瞻性的项目。很高兴看到平台在基本运行时间性能方面再次扩展,而且还有更多内容需要沿着这些路线发展。
相关连接:
- https://devblogs.microsoft.com/dotnet/announcing-net-6-rc1/
- https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-rc-1/
- https://devblogs.microsoft.com/dotnet/update-on-dotnet-maui/
- https://platform.uno/blog/uno-platform-3-10-day-0-support-for-net-6-rc1-winui-infobadge-windows-11-fluent-styles/
.NET 6 RC1 正式发布的更多相关文章
- iNeuOS工业互联平台,PLC监测与控制应用过程案例。新闻:.NET 6 RC1 正式发布
目 录 1. 概述... 1 2. 平台演示... 2 3. 应用过程... 2 1. 概述 iNeuOS工业互联网操作系统主要使用.netcore 3. ...
- .NET 7 RC1 正式发布
从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月14日发布了 .NET 7 RC 1:https://devblogs.microsoft.com/dotnet/a ...
- .Net7 内容汇总(1)
.Net7 RC1发布 在9月14号,.Net7 RC1正式发布了. 按照微软的说法 This is the first of two release candidates (RC) for .NET ...
- .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库
今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...
- ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢?
ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢? RC 的意思是软件候选版本,就是不会有很大的改变,主要还是在除错方面. 来自收集的资料1引用: Alpha:是内部测试版,一般不向外部 ...
- Spring Cloud Hoxton正式发布,Spring Boot 2.2 不再孤单
距离Spring Boot 2.2.0的发布已经有一个半月左右时间,由于与之匹配的Spring Cloud版本一直没有Release,所以在这期间碰到不少读者咨询的问题都是由于Spring Boot和 ...
- .NET 5.0 RC1 发布,离正式版发布仅剩两个版本
原文:http://dwz.win/Qf8 作者:Richard 翻译:精致码农-王亮 说明:1. 本译文并不是完全逐句翻译的,存在部分语句我实在不知道如何翻译或组织就根据个人理解用自己的话表述了.2 ...
- 官宣!ElasticJob 3.0.0 版本正式发布
ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.它通过弹性调度.资源管控.以及 ...
- .NET MAUI发布了期待已久的候选版本(RC1)
作者:David Ortinau 我们激动地宣布在4/13/2022.NET多平台应用UI (.NET MAUI)发布了候选版本.SDK现在已经集成好了API,可以更新库,并为GA(通用可用性)兼容性 ...
随机推荐
- a href="tel" 拨打电话
电话号码是固定的: <a href="'tel:10086">10086</a> 电话号码是动态获取时: 走默认的方式失败 <a href=" ...
- Java异常02——自定义异常
Error与Exception与自定义异常 Error与Exception Error Exception 自定义异常 快捷键: ctrl + alt + t package exception.d ...
- Linux中DNS分离解析
目录 一.分离解析概述 二.DNS分离解析实验 要求 实验步骤 一.分离解析概述 分离解析:同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址 分离解析的域名服务器实际也是主 ...
- 【笔记】求数据前n个主成分以及对高维数据映射为低维数据
求数据前n个主成分并进行高维数据映射为低维数据的操作 求数据前n个主成分 先前的将多个样本映射到一个轴上以求使其降维的操作,其中的样本点本身是二维的样本点,将其映射到新的轴上以后,还不是一维的数据,对 ...
- SpringBoot开发九-生成验证码
需求介绍-生成验证码 先生成随机字符串然后利用Kaptcha API生成验证图片 代码实现 先在pom.xml引入 <dependency> <groupId>com.gith ...
- 页面模型 PageModel
Razor页面中的程序处理方法 OnGet 和 OnGetAsync是同样的处理程序,因此不能共存,否则会报错. 视图数据 ViewData 视图数据是从页面模型向内容页面传递数据的容器.视图数据是以 ...
- Ubuntu系统Root用户无法登录
默认 系统 root 登录 图形界面,出现 登录失败.解决方法如下: 1,登录普通用户, 打开终端执行命令, 使用su root或sudo -i切换到root用户(必须) su root 按照提示输入 ...
- SpringBoot快速入门(二)
2.SpringBoot原理分析 2.1.SpringBoot自动配置 Condition Condition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Be ...
- 【spring】spring 核心注解
注解具体分类如下: 1.模式注解 @Repository 数据仓储模式注解 @Component 通用组件模式注解 @Service ...
- mybatis学习日志二
一.动态sql语句 if语句 if+where语句 if+set语句 choose(when,otherwise)语句 trim语句 sql片段 foreach语句 总结 bean部分的User类代码 ...