乐趣区

关于.net:NET-7-Preview-1-已正式发布

​近日,.NET 7 第一个预览版 .NET 7 Preview 1 正式公布。

.NET 7 建设在 .NET 6 建设的根底之上,包含一套对立的根底库、运行时和 SDK,简化了开发体验,进步了开发人员的工作效率。.NET 7 的次要关注畛域包含改良对云原生计划的反对、更容易降级旧我的项目的工具,以及通过更轻松地应用容器来简化开发人员体验。

.NET 7 Preview1 包含对 API 的可空正文、继续的 JIT 编译器优化、新的 API 以及对更多热重载计划的反对。

.NET 7 Preview 1 次要更新内容

Microsoft.Extensions 的可空注解

.NET  在正文 Microsoft.Extensions.* 库,以实现可空性 (nullability) 方面获得了停顿。在 .NET 7 Preview 1 中,以下库已针对可空性进行了正文:

  • Microsoft.Extensions.DependencyInjection.Abstractions
  • Microsoft.Extensions.Logging.Abstractions
  • Microsoft.Extensions.Primitives
  • Microsoft.Extensions.FileSystemGlobbing
  • Microsoft.Extensions.DependencyModel
  • Microsoft.Extensions.Configuration.Abstractions
  • Microsoft.Extensions.FileProviders.Abstractions
  • Microsoft.Extensions.FileProviders.Physical
  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Binder
  • Microsoft.Extensions.Configuration.CommandLine
  • Microsoft.Extensions.Configuration.EnvironmentVariables
  • Microsoft.Extensions.Configuration.FileExtensions
  • Microsoft.Extensions.Configuration.Ini
  • Microsoft.Extensions.Configuration.Json

咱们打算在 .NET 7 正式公布时为所有 Microsoft.Extensions.* 库增加可空性正文。

可察看性

持续改良跟踪 API:

  • 增加 ActivityContext.TryParse 重载以容许解析和创立 ActivityContext 对象,包含是否从近程父级流传流动上下文(相干问题)。
  • 增加 Activity.IsStopped 批示 Activity 对象是否进行的办法(相干问题)。

代码生成

依据社区意见对代码生成进行了改良

  • 将一些新式外部函数转换为 NamedIntrinsic。#62271
  • 将额定的二进制操作增加到 RangeCheck 剖析中。#61662
  • [JIT] [61620] 针对 *x = dblCns 优化 ARM64;#61847
  • CoreRT 反对 ARM64&Unix。#41023
  • 基于笼罩的 FMA codegen 优化 #58196

动静 PGO

  • 对 Arm64 的 OSR 反对
  • JIT:反对同步办法的 OSR
  • JIT:解决 OSR、PGO 和尾调用的交互
  • 增加 2009 Jit 架构打算(节选)
  • JIT:一些 relops 的无限版本的前向替换
  • JIT:为前期去虚拟化保留泛型上下文

Arm64

Arm64:内存屏障改良

循环优化

  • 泛化循环前标头创立和循环晋升
  • 循环重构和正文改良

互操作:p/Invoke 代码生成

咱们将在 .NET 6 中原型化的 p/invoke 源生成器(Source Generator) 集成到 dotnet/runtime 中,并且始终在转换运行时库以应用它。这意味着转换后的 p/invokes 与 AOT 兼容,不再须要在运行时生成 IL Stub。

System.Text.Json 中的新 API

System.Text.Json 附带了一些小的生命周期加强性能:

  • 开发人员当初能够拜访 System.Text.Json 外部应用的默认单例 JsonSerializerOptions(相干问题)。
  • 增加一个 JsonWriterOptions.MaxDepth 属性并确保此值来自序列化的 JsonSerializerOptions.MaxDepth 等效属性(相干问题)。
  • 将 Patch 办法增加到 System.Net.Http.Json

热重载改良

下列更改实用于  Blazor WebAssembly 和 .NET 的 C# 热重载

  • 向现有办法增加动态 lambda
  • 将捕捉这个的 lambda 增加到曾经有至多一个捕捉这个的 lambda 的现有办法中
  • 向现有类增加新的动态或非虚构实例办法
  • 向现有类增加新的动态字段
  • 增加新类
退出移动版