In recent days, ,.NET 7 The first preview .NET 7 Preview 1 Official release .
.NET 7 Based on the .NET 6 Based on , Including a unified basic library 、 Runtime sum SDK, Simplifies the development experience , Improve the working efficiency of developers ..NET 7 Major areas of focus include improving support for cloud native solutions 、 Tools that make it easier to upgrade old projects , And simplify the developer experience by making it easier to use containers .
.NET 7 Preview1 Including yes API Nullable comment for 、 Continuous JIT Compiler optimization 、 new API And support for more thermal overload schemes .
.NET 7 Preview 1 Main updates
Microsoft.Extensions Nullable annotation
.NET In the comments Microsoft.Extensions.* library , To achieve nullability (nullability) Progress has been made in . stay .NET 7 Preview 1 in , The following libraries have been annotated for nullability :
- 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
We plan to .NET 7 For all when officially released Microsoft.Extensions.* Add nullability comments to the library .
Observability
Continue to improve tracking API:
- add to ActivityContext.TryParse Overloaded to allow parsing and creating ActivityContext object , Includes whether to propagate the activity context from the remote parent ( Related issues ).
- add to Activity.IsStopped instructions Activity Whether the object is stopped ( Related issues ).
Code generation
Code generation has been improved according to community comments
- Convert some old-fashioned internal functions to NamedIntrinsic . #62271
- Add additional binary operations to RangeCheck Analyzing .#61662
- [JIT] [61620] in the light of *x = dblCns Optimize ARM64;#61847
- CoreRT Support ARM64&Unix .#41023
- Coverage based FMA codegen Optimize #58196
dynamic PGO
- Yes Arm64 Of OSR Support
- JIT: Support synchronization methods OSR
- JIT: Handle OSR、PGO Interaction with tail call
- add to 2009 Jit Architecture plan ( excerpts )
- JIT: some relops Forward substitution of a limited version of
- JIT: Save generic context for later de virtualization
Arm64
Arm64: Memory barrier improvements
Cycle optimization
- Header creation and loop promotion before generalization loop
- Loop refactoring and annotation improvements
interoperability :p/Invoke Code generation
We will be in .NET 6 Central Plains p/invoke Source generator (Source Generator) Integrated into the dotnet/runtime in , And has been converting the runtime library to use it . This means that after conversion p/invokes And AOT compatible , You no longer need to generate at run time IL Stub.
System.Text.Json New in API
System.Text.Json Comes with some small lifecycle enhancements :
- Developers can now access System.Text.Json Default singleton for internal use JsonSerializerOptions( Related issues ).
- Add one JsonWriterOptions.MaxDepth Property and ensure that this value comes from the serialized JsonSerializerOptions.MaxDepth Equivalent properties ( Related issues ).
- take Patch Method to add to System.Net.Http.Json
Thermal overload improvement
The following changes apply to Blazor WebAssembly and .NET Of C# Hot heavy load
- Add static to an existing method lambda
- Will capture this lambda Add to a that already has at least one capture of this lambda Of the existing methods
- Add a new static or non virtual instance method to an existing class
- Add a new static field to an existing class
- Add a new class