.NET候选版本2发布

这篇具有很好参考价值的文章主要介绍了.NET候选版本2发布。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文作者为Jon Douglas、Jeremy Likness 和 Angelos Petropoulos

今天,我们宣布推出 .NET 7 Release Candidate 2。这是 .NET 7 的最终候选版本(RC),并在生产环境中得到支持。

您可以下载适用于 Windows、macOS 和 Linux 的 .NET 7 Release Candidate 2。

  • 安装程序和二进制文件
  • 容器图像
  • Linux 软件包
  • 发行说明
  • 已知的问题
  • GitHub 问题跟踪器

.NET 7 Release Candidate 2 已通过 Visual Studio 17.4 Preview 3测试。如果您想在 Visual Studio 系列产品中试用 .NET 7,我们建议您使用预览通道构建。 如果您使用的是 macOS,我们建议使用最新的 Visual Studio 2022 for Mac 预览版。

不要忘记 .NET Conf 2022。在 2022  11  8 日至 10 日与我们一起庆祝 .NET 7 的发布!

在本博客中,我们将重点介绍 .NET 7 的核心主题,并为您提供深入了解细节的资源。

C# 11

C# 11 是 C# 的最新版本,现在可在 .NET 7 中使用。

我们在设计和开发 C# 中。 您可以加入我们的 CSharpLang 存储库以查看最新的 C# 功能提案和会议记录。 计划工作后,您可以通过我们的功能状态页面监控进度。 要了解有关 C# 11 的更多信息,请查看以下内容:

  • C# 11 功能的早期预览
  • C# 11 预览更新 - 原始字符串文字、UTF-8 等!
  • C# 11 预览:通用数学、必需成员等
  • C# 11 中的新功能

注意:若要试用 C# 11 预览版功能,请创建一个 C# 项目并将 LangVersion 设置为 Preview。

.NET 库在不断改进。会定期添加包含全新功能的新 API。 现有 API 正在进行性能改进,只需升级即可使您受益。 正在建造全新的库,以协助您完成日常工作。 这些博客中介绍了许多 .NET 库增强功能,但不要忘记深入研究这些库:

  • .NET 6 中的预览功能 - 通用数学
  • .NET 7 Preview 5 – 通用数学
  • .NET 7 中的正则表达式改进
  • 宣布推出 .NET 的速率限制

SDK

每个 .NET 版本都包含对 .NET SDK 的大量改进,包括用于创建、生成和管理 .NET 项目的核心功能。 许多增强功能已包含在您可以阅读的以前的预览博客中。 要了解有关新 SDK 功能的更多信息,请参阅以下内容:

  • 宣布推出对 .NET  SDK的内置容器支持
  • 中央包管理简介

如何为 System.Text.Json 源生成重新启用反射回退

.NET 7 引入了一项有意的重大更改,该更改删除了 System.Text.Json 源生成器中基于反射的序列化的静默回退。 根据我们从客户那里收到的早期反馈,似乎有不少用户(大部分是偶然的)依赖回退行为。

即使已经记录了重大更改的解决方法,它仍然需要代码更改,这在某些情况下是不可能的。 从 .NET 7 RC 2 开始,您可以使用提供的 AppContext 兼容性开关在全局范围内重新启用反射回退。 将以下条目添加到应用程序的项目文件中,以重新启用应用程序中所有源构建上下文的反射回退:

<ItemGroup>
  <RuntimeHostConfigurationOption Include="System.Text.Json.Serialization.EnableSourceGenReflectionFallback" 
Value="true" />
</ItemGroup>

有关使用 AppContext 开关的详细信息,请参阅有关 .NET 运行时配置设置的文章。

新分析器用于帮助您以正确方式使用 API

正确实现通用数学接口

dotnet/runtime #69775

确保使用奇异递归模板模式 (CRTP) 的 .NET 通用数学接口在用户代码中正确实现。 特别是,如果实现 .NET 通用数学接口(实现 CRTP 架构)的类型未使用类型本身填充泛型类型参数,它将发出警告。

例如:

public readonly struct DateOnly : IParsable<DateOnly> // correct implementation of IParsable<TSelf> interface
{ ... }
public readonly struct MyDate : IParsable<DateOnly> // Warns: "The 'IParsable<TSelf>' requires the 'TSelf' type parameter to be filled with the derived type 'MyDate' " the type parameter TSelf
{ ... } 

防止内置运算符中的行为更改 IntPtr 和 UIntPtr

dotnet/runtime #74022

在.NET 7 中为 System.IntPtr 和 System.UIntPtr 添加的一些内置运算符的行为与 .NET 6 及更早版本中的用户定义运算符不同。 一些过去在溢出时抛出未经检查的上下文的运算符现在不再抛出,除非包装在已检查的上下文中,而一些过去在溢出时抛出未经检查的上下文的运算符现在在溢出时抛出,除非包装在未经检查的上下文中。 分析器检测可能导致这些行为变化的代码并通知它。

例如:

checked
{
    intPtr2 = intPtr1 + 2; // Warns: "Starting with .NET 7 the operator '+' will throw when overflowing in a checked context. Wrap the expression with an 'unchecked' statement to restore the .NET 6 behavior."

    intPtr2 = intPtr1 - 2; // Warns: "Starting with .NET 7 the operator '-' will throw when overflowing in a checked context. Wrap the expression with an 'unchecked' statement to restore the .NET 6 behavior."

    void* ptr = (void*)intPtr1; // Warns: "Starting with .NET 7 the explicit conversion '(void*)IntPtr' will throw when overflowing in a checked context. Wrap the expression with an 'unchecked' statement to restore the .NET 6 behavior."

    intPtr2 = (IntPtr)ptr; // Warns: "Starting with .NET 7 the explicit conversion '(IntPtr)void*' will throw when overflowing in a checked context. Wrap the expression with an 'unchecked' statement to restore the .NET 6 behavior."
}

intPtr1 = (IntPtr)longValue; // Warns: "Starting with .NET 7 the explicit conversion '(IntPtr)Int64' will not throw when overflowing in an unchecked context. Wrap the expression with a 'checked' statement to restore the .NET 6 behavior."

int a = (int)intPtr1; // Warns: "Starting with .NET 7 the explicit conversion '(Int32)IntPtr' will not throw when overflowing in an unchecked context. Wrap the expression with a 'checked' statement to restore the .NET 6 behavior."

贡献者聚光灯

非常感谢我们所有的社区成员。 我们非常感谢您的周到贡献。 我们请贡献者@a74nh分享他的想法。

.NET候选版本2发布

用Alan自己的话说:

我是Alan Hayward,我住在英国曼彻斯特郊外。

我对 .NET 及其生态系统还很陌生,但我在做编译之类的事情方面有着悠久的历史。 在我职业生涯的早期,我曾在一家生产名为 QuickTransit 的 DBT 的初创公司工作——更好地称为 Apple 的 Rosetta(从他们从 PPC 迁移到 X86 时回来)——但我更关心它在架构中鲜为人知的应用程序:SPARC Solaris 到 X86/Itanium/PPC Linux 和 X86 Linux 到 MIPS/PPC/SPARC/Z Linux,可能还有更多的组合现在已经消失在时间的迷雾中。

2014 年,我加入了 Arm 的新曼彻斯特英国办事处,致力于为 GCC 和 GDB 添加 SVE 支持,然后成为 GDB 的 Arm/AArch64 维护者。 今天我加入了 Arm 的运行时团队,研究流行的云和桌面运行时的性能和安全性。 有一段时间我从事 OpenJDK 和 Graal 工作,包括添加对 Arm 的指针身份验证 (PAC) 安全功能的支持,以保护 OpenJDK 中的控制流。

我最近一直在与 .Net 上的一些团队合作——让我们加快速度,使用内在函数改进一些库例程,并为 Ryujit 添加一个 If Conversion pass。 我很高兴看到我们可以对 Arm64 端口进行一些改进。

我喜欢 .Net 的哪些方面? 我喜欢 C# 的简单性——您可以快速轻松地完成工作(每个会编程的人都可以用 C# 编程)。 同样,Jit 本身在应用编译器技术的方式上也很直观。 最后,对 SuperPMI 表示敬意——这是我希望在以前的项目中拥有的工具,能够快速获得测试套件之间的差异真是太棒了。

当我不工作时,经常会发现我用小画笔试图改善我的微型画,听太多的播客和有声读物。

我很高兴能成为其中的一员,非常感谢迄今为止与我互动过的社区中的人们,并希望随着时间的推移与更多人合作。

支持

.NET 7发布时提供标准支持。尽管这是以前称为“当前”的新名称,但支持持续时间没有改变。奇数 .NET 版本发布时提供18 个月的标准支持长期支持(LTS的名称或期限没有变化,仍持续36个月。有关更多详细信息,请参阅我们的 .NET 和 .NET Core 支持生命周期文档。

路线图

.NET 版本包括代表 Microsoft 内部和外部多个团队之间协作的产品、库、运行时和工具。 您可以通过阅读产品路线图了解有关这些领域的更多信息:

  • ASP.NET Core 7 and Blazor Roadmap
  • EF 7 Roadmap
  • ML.NET
  • .NET MAUI
  • WinForms
  • WPF
  • NuGet
  • Roslyn
  • Runtime

我们非常感谢您对 .NET 的所有支持和贡献。 请尝试使用 .NET 7 Release Candidate 2,并告诉我们您的想法!

有关.NET 7 Release Candidate 2 中包含的所有功能和改进的详细概述,请查看之前的 .NET 7 预览版博客文章:

  • 宣布发布 .NET 7 预览版 1
  • 宣布发布 .NET 7 预览版 2
  • 宣布发布 .NET 7 预览版 3
  • 宣布发布 .NET 7 预览版 4
  • 宣布发布 .NET 7 预览版 5
  • 宣布发布 .NET 7 预览版 6
  • 宣布发布 .NET 7 预览版 7
  • 宣布发布 .NET 7 候选版本 1

注意:请花一点时间重新访问“宣布发布 .NET 7 Release Candidate 1博客,因为遗漏了一些令人兴奋的功能。

点击试用 .NET 7 Release Candidate 2~文章来源地址https://www.toymoban.com/news/detail-481964.html

到了这里,关于.NET候选版本2发布的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 新书发布!《数字化时代研发效能跃升方法与实践》作者序丨IDCF

    作者团队: 姚冬、王立杰、徐磊、许舟平 为什么会有本书 只是因为在人群之中,多看了你一眼。这一切,都要从IDCF的发端讲起  缘起IDCF 时间如白马过隙,我们成立IDCF一晃已有四年,而距离上一本书《敏捷无敌之DevOps时代》的出版也两年有余。 IDCF缘起于2019年5月的一次聚

    2024年02月16日
    浏览(49)
  • IDEA创建Java类时自动配置注释(作者,创建时间,版本等)

    在使用IDEA创建Java类时,自动配置注释功能可以通过以下步骤启用: 打开IDEA的设置窗口。 选择“Editor”选项卡,然后选择“File and Code Templates”。 在“File and Code Templates”窗口中,选择“Includes”选项卡。 在“Includes”选项卡中,选择“File Header”并编辑以下内容: 单击“

    2024年02月16日
    浏览(46)
  • 【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)

    目录 0.前言 什么是数据结构? 1.逻辑结构: 1.1线性结构: 1.2非线性结构:         (1)集合         (2)树形结构         (3)图形结构或者网状结构 2.存储结构 一.线性表 二.顺序表 顺序表与数组的关系:(非常容易混淆) 1.静态顺序表:使用定长数组存储元素 2.动态顺序表

    2024年02月06日
    浏览(54)
  • 将GPU版本的torch和torchvision下载至本地进行安装,解决torch.cuda.is_available()为False的情况,本文主要解决CPU版本的torch问题。

    这是困扰我很久的问题,今天花了一点时间去研究一下为什么我的cuda和cudann安装完成了,却不能使用GPU,原因是我的torch和torchvision是cpu版本的,必须下载GPU版本的才能使torch.cuda.is_available()为True,本文使用将文件下载到文件夹后进行安装。 1、打开Anaconda Prompt(Anaconda3)  2、打开

    2024年02月10日
    浏览(61)
  • 一些AG10K FPGA 调试的建议-Douglas

    PLL AGM FPGA 在配置成功时,PLL 已经完成锁定,lock 信号已经变高;如果原设计中用 lock 信号输出实现系统 reset 的复位功能,就不能正确完成上电复位;同时,为了保证 PLL 相移的稳定,我们需要在 PLL 启动后做个延时的复位,设计中可以参考下面 Verilog 代码,这里需要 PLL 的

    2024年02月03日
    浏览(28)
  • 【Python】【OpenCV】凸轮廓和Douglas-Peucker算法

    针对遇到的各种复杂形状的主体,大多情况下,我们可以求得一个近似的多边形来简化视觉图像处理,因为多边形是由直线组成的,这样就可以准确的划分区域来便捷后续的操作。   cv2.arcLength() Method: 参数: curve :要计算周长的轮廓,可以是一个矩形、圆形、多边形等封闭

    2024年02月05日
    浏览(40)
  • .NET 8 预览版 1 发布!

    .NET 8 是一个长期支持(LTS) 版本。这篇文章涵盖了推动增强功能优先级排序和选择开发的主要主题和目标。.NET 8 预览版和发布候选版本将每月交付一次。像往常一样,最终版本将在 11 月的某个时候在 .NET Conf 上发布。 .NET 版本包括产品、库、运行时和工具,代表 Microsoft 内外

    2024年02月05日
    浏览(32)
  • WEB API .NET环境发布

    1、创建WEBAPI View Code 用restful 风格创建接口  链接字符串 2、webapi发布 发布路径  发布时选择空文件  选择路径  发布完成示例图  注意编辑接口是会勾选XML输出  这个路径打包编译时是不会自动编译过去的 3、发布到IIS上 创建应用池时(创建无托管、集成)    部署服务器

    2024年02月03日
    浏览(30)
  • .NET Core发布到IIS

    项目介绍 1、开发工具Visual Studio 2017,语言C#,SQL SERVER,WIN10 2、本地IIS,手机上或其他用户在和本地在同一个局域网内访问,同时要把防火墙关掉 3、IIS全名Internet Information Services,用来发布网站 先决条件 安装 .NET Core 托管捆绑包[https://dotnet.microsoft.com/en-us/download/dotnet/thank-yo

    2024年02月12日
    浏览(33)
  • .NET 8.0 发布到 IIS

    在本文中,我假设您的 Windows Server IIS 上已经有一个应用程序池。 按照步骤了解在 IIS 环境下发布 ASP.NET Core 8 应用程序的技巧。 您需要设置代码以支持 IIS 并将项目配置为在目标池的体系结构上运行。 要检查您的池是否在 x86 上运行,请验证 inetmgr 控制台,验证高级设置...并

    2024年01月17日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包