What's new in .NET 6
I'm compiling information for our next Adelaide .NET User Group meetup which is focusing on the launch of .NET 6 and Visual Studio 2022.
.NET 6 is the final area in this series. It encompasses changes to both the runtime and base class libraries. There is a lot going on here, so do let me know if I've missed something.
Preview 1
More details in https://github.com/dotnet/core/issues/5853
ARM64
- On Windows, we’re adding support for Windows Forms and Windows Presentation Framework (WPF)
Theme
- Improve startup and throughput using runtime execution information (PGO)
.NET CLI
- Response files are now supported
- Directives
Libraries
- New math APIs
- Improved support for Windows ACLs
- Portable thread pool
Runtime
- Support for Apple Silicon (M1 Arm64), .NET Rosetta 2 Emulation
- Improving single file apps
- Single-file signing on macOS
- Crossgen2
- Dynamic PGO
- Arm64 performance
- Hardware-accelerating structs
Preview 2
More details in https://github.com/dotnet/core/issues/5889
Theme
- Improve .NET Inner Loop Performance
- .NET has a great client app development experience
.NET Libraries
System.Text.Json
–ReferenceHandler.IgnoreCycles
PriorityQueue
- Better parsing of standard numeric formats
- SignalR – Nullable annotations
Runtime
- Framework Assemblies are compiled with Crossgen2
- Profile guided optimization
- JIT improvements
Preview 3
More details in https://github.com/dotnet/core/issues/5890
Libraries
- Faster handling of structs as Dictionary values
- Faster interface checking and casting
Runtime
- Codegen
Tools
- Initial .NET Hot Reload support now available for web apps
Preview 4
More details in https://github.com/dotnet/core/issues/6098
Tools
- Hot Reload with the Visual Studio debugger and dotnet CLI
Libraries
System.Text.Json
support for IAsyncEnumerableSystem.Text.Json
Writeable DOM FeatureMicrosoft.Extensions.Logging
compile-time source generatorSystem.Linq
enhancements- Significantly improved
FileStream
performance on Windows - Enhanced Date, Time and Time Zone support
Runtime
- CodeGen
.NET Diagnostics
- EventPipe for Mono and Improved EventPipe Performance
- IL trimming
- Single-file publishing
CLI install of .NET 6 SDK Optional Workloads
Preview 5
More details in https://github.com/dotnet/core/issues/6099
.NET SDK
- Optional Workload improvements
- NuGet Package Validation
- more Roslyn Analyzers
- Enable custom guards for Platform Compatibility Analyzer
Windows Forms
More detail in separate post
- default font
- More runtime designers
Libraries
- Dropping support for older frameworks
Microsoft.Extensions
JsonSerializer
Source generation- WebSocket Compression
- Socks proxy support
- Support for OpenTelemetry Metrics
Vector<T>
now supportsnint
andnuint
- Support for OpenSSL 3
- Add support ChaCha20/Poly1305 cryptography algorithm
Interop
- Objective-C interoperability support
Diagnostics
- (EventPipe/DiagnosticsServer) – MonoVM
Runtime
- CodeGen
Preview 6
More details in https://github.com/dotnet/core/issues/6325
x64 emulation update
Tools
- .NET SDK Optional Workload improvements
- Crossgen2 replaces crossgen
Libraries
- TLS support for System.DirectoryServices.Protocols
- Improved sync-over-async performance
Runtime
- W^X memory policy
- CodeGen
Preview 7
More details in https://github.com/dotnet/core/issues/6444
.NET SDK
- C# project templates modernized
Libraries
- Reflection APIs for nullability information
ZipFile
Respects Unix File PermissionsNativeMemory
APIsSystem.Text.Json
serialization notificationsSystem.Text.Json
serialization property ordering- “write raw” JSON with
System.Text.Json.Utf8JsonWriter
- Synchronous stream overloads on
JsonSerializer
System.Text.Json.Nodes.JsonNode
support for dynamic is removedSystem.Diagnostics
Propagators- Simplified call patterns for cryptographic operations
- Full Case Mapping Support in Globalization Invariant Mode
Runtime
- W^X (write xor execute) support for all platforms and architectures
- CodeGen
Early .NET 7 Feature Preview
- Generic Math
Release Candidate 1
More details in https://github.com/dotnet/core/issues/6569
- Source build
- Profile-guided optimization (PGO)
- Dynamic PGO
- Crossgen2
- Security mitigations
- HTTP/3
- SDK workloads
Release Candidate 2
More details in https://github.com/dotnet/core/issues/6570
- C# 10
- .NET SDK: C# project templates modernized
- macOS and Windows Arm64 Update
Focussed posts
In addition the following posts were made:
- What’s next for System.Text.Json?
- Loop alignment in .NET 6
- Date, Time, and Time Zone Enhancements in .NET 6
- Try the new System.Text.Json source generator
- String Interpolation in C# 10 and .NET 6
- Preview Features in .NET 6 – Generic Math
- Performance Improvements in .NET 6
- New .NET 6 APIs driven by the developer community
- File IO improvements in .NET 6
- .NET Hot Reload Support via CLI
Categories: .NET