内容简介:伴随着 .NET 诞生 20 周年。.NET 7 第一个预览版 .NET 7 Preview 1 正式发布。.NET 7 Preview 1 包括对 API 的可空注释、持续的 JIT 编译器优化、新的 API 以及对更多热重载方案的支持。 目前 .NET 7 Preview 1 已...
伴随着 .NET 诞生 20 周年。.NET 7 第一个预览版 .NET 7 Preview 1 正式发布。.NET 7 Preview 1 包括对 API 的可空注释、持续的 JIT 编译器优化、新的 API 以及对更多热重载方案的支持。
目前 .NET 7 Preview 1 已通过 Visual Studio 17.2 预览版 1 进行测试,在此可下载 ,适用于 Windows、macOS 和 Linux 。
Microsoft.Extensions 的可空(nullable)注释
.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.* 库添加可空性注释。可以在 dotnet/runtime#43605 处关注进度。
可观察性(继续改进跟踪 API)
继续改进跟踪 API:
- 添加
ActivityContext.TryParse
重载,以允许解析和创建ActivityContext
对象,包括是否从远程父级传播活动上下文(相关 issue)。 - 添加
Activity.IsStopped()
方法, 指示Activity
对象是否停止(相关 issue)。
代码生成
- 将一些旧式内部函数转换为 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:内存屏障改进
- 在 InitBlkUnroll/CopyBlkUnroll 中使用 SIMD 操作并将展开限制增加到 128 字节
- [Arm64] 继续展开 InitBlock 和 CopyBlock 最多 128 字节
- 'cmeq' 和 'fcmeq' Vector64.Zero/Vector128.Zero ARM64 包含优化
- [arm64] JIT: X % 2 == 0 -> X & 1 == 0
- [arm64] JIT:添加符号/零扩展
- [arm64] JIT:为“arrayBase + elementOffset”启用 CSE/提升
- [arm64] JIT:将“A * B + C”折叠为 MADD/MSUB
互操作:p/Invoke 代码生成
.NET 7 将在 .NET 6 中原型化的 p/invoke 源生成器集成到 dotnet/runtime 中,并且一直在转换运行时库以使用它。这意味着转换后的 p/invokes 与 AOT 兼容,不再需要在运行时生成 IL 存根。
未来打算让 p/invoke 源生成器在运行时之外可用,可以在dotnet/runtime#60595 中关注剩余的工作。
System.Text.Json 中的新 API
System.Text.Json 附带了一些小的增强功能:
- 开发人员现在可以访问
JsonSerializerOptions
:由 System.Text.Json 内部使用的默认单例(相关问题)。 - 添加一个
JsonWriterOptions.MaxDepth
属性,并确保此值来自序列化的等效JsonSerializerOptions.MaxDepth
属性(相关问题)。 - 将
Patch
方法添加到System.Net.Http.Json
(相关问题)。
热重载改进
下列更改适用于 Blazor WebAssembly 和 .NET 的 C# 热重载
- 向现有方法添加静态 lambda
- 将捕获这个的 lambda 添加到已经有至少一个捕获这个的 lambda 的现有方法中
- 向现有类添加新的静态或非虚拟实例方法
- 向现有类添加新的静态字段
- 添加新类
已知的问题:
- 不支持新增类中的实例字段
- 现有或新类中新添加的方法和字段对反射不可见
可以在 dotnet/runtime#57365 中关注进度
发布公告:https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 附件在线预览组件 WDA 1.2.6 发布,支持图片预览功能
- 附件在线预览组件 WDA 1.2.3 发布,支持通过 url 预览附件
- WinObjC 0.1.160621 预览版发布
- WinObjC 0.1.160621 预览版发布
- PhpStorm 2018.1 公开预览版发布
- WinObjC 0.1.160621 预览版发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
面向对象分析与设计
Grady Booch、Robert A. Maksimchuk、Michael W. Engel、Bobbi J. Young、Jim Conallen、Kelli A. Houston / 王海鹏、潘加宇 / 人民邮电出版社 / 2009-8 / 79.00元
《面向对象分析与设计(第3版)》是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,《面向对象分析与设计(第3版)》又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的实际需要。《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOA......一起来看看 《面向对象分析与设计》 这本书的介绍吧!