mirror of https://github.com/abpframework/abp.git
54 changed files with 304 additions and 136 deletions
@ -0,0 +1,149 @@ |
|||||
|
# What’s New in .NET 10 Libraries and Runtime? |
||||
|
|
||||
|
With .NET 10, Microsoft continues to evolve the platform toward higher performance, stronger security, and modern developer ergonomics. This release brings substantial updates across both the **.NET Libraries** and the **.NET Runtime**, making everyday development faster, safer, and more efficient. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## .NET Libraries Improvements |
||||
|
|
||||
|
### 1. Post-Quantum Cryptography |
||||
|
|
||||
|
.NET 10 introduces support for new **quantum-resistant algorithms**, ML-KEM, ML-DSA, and SLH-DSA, through the `System.Security.Cryptography` namespace. |
||||
|
These are available when running on compatible OS versions (OpenSSL 3.5+ or Windows CNG). |
||||
|
|
||||
|
**Why it matters:** This future-proofs .NET apps against next-generation security threats, keeping them aligned with emerging FIPS standards and PQC readiness. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 2. Numeric Ordering for String Comparison |
||||
|
|
||||
|
The `StringComparer` and `HashSet` classes now support **numeric-aware string comparison** via `CompareOptions.NumericOrdering`. |
||||
|
This allows natural sorting of strings like `v2`, `v10`, `v100`. |
||||
|
|
||||
|
**Why it matters:** Cleaner and more intuitive sorting for version names, product codes, and other mixed string-number data. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 3. String Normalization for Spans |
||||
|
|
||||
|
Normalization APIs now support `Span<char>` and `ReadOnlySpan<char>`, enabling text normalization without creating new string objects. |
||||
|
|
||||
|
**Why it matters:** Lower memory allocations in text-heavy scenarios, perfect for parsers, libraries, and streaming data pipelines. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 4. UTF-8 Support for Hex String Conversion |
||||
|
|
||||
|
The `Convert` class now allows **direct UTF-8 to hex conversions**, eliminating the need for intermediate string allocations. |
||||
|
|
||||
|
**Why it matters:** Faster serialization and deserialization, especially useful in networking, cryptography, and binary protocols. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 5. Async ZIP APIs |
||||
|
|
||||
|
ZIP handling now fully supports asynchronous operations, from creation and extraction to updates, with cancellation support. |
||||
|
|
||||
|
**Why it matters:** Ideal for real-time applications, WebSocket I/O, and microservices that handle compressed data streams. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 6. ZipArchive Performance Boost |
||||
|
|
||||
|
ZIP operations are now faster and more memory-efficient thanks to parallel extraction and reduced memory pressure. |
||||
|
|
||||
|
**Why it matters:** Perfect for file-heavy workloads like installers, packaging tools, and CI/CD utilities. |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
|
||||
|
|
||||
|
### 7. TLS 1.3 Support on macOS |
||||
|
|
||||
|
.NET 10 brings **TLS 1.3 client support** to macOS using Apple’s `Network.framework`, integrated with `SslStream` and `HttpClient`. |
||||
|
|
||||
|
**Why it matters:** Consistent, faster, and more secure HTTPS connections across Windows, Linux, and macOS. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 8. Telemetry Schema URLs |
||||
|
|
||||
|
`ActivitySource` and `Meter` now support **telemetry schema URLs**, aligning with OpenTelemetry standards. |
||||
|
|
||||
|
**Why it matters:** Simplifies integration with observability platforms like Grafana, Prometheus, and Application Insights. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 9. OrderedDictionary Performance Improvements |
||||
|
|
||||
|
New overloads for `TryAdd` and `TryGetValue` improve performance by returning entry indexes directly. |
||||
|
|
||||
|
**Why it matters:** Up to 20% faster JSON updates and more efficient dictionary operations, particularly in `JsonObject`. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## .NET Runtime Improvements |
||||
|
|
||||
|
|
||||
|
|
||||
|
### 1. JIT Compiler Enhancements |
||||
|
|
||||
|
- **Faster Struct Handling:** The JIT now passes structs directly via CPU registers, reducing memory operations. |
||||
|
*→ Result: Faster execution and tighter loops.* |
||||
|
|
||||
|
- **Array Interface Devirtualization:** Loops like `foreach` over arrays are now almost as fast as `for` loops. |
||||
|
*→ Result: Fewer abstraction costs and better inlining.* |
||||
|
|
||||
|
- **Improved Code Layout:** A new 3-opt heuristic arranges “hot” code paths closer in memory. |
||||
|
*→ Result: Better branch prediction and CPU cache performance.* |
||||
|
|
||||
|
- **Smarter Inlining:** The JIT can now inline more method types (even with `try-finally`), guided by runtime profiling. |
||||
|
*→ Result: Reduced overhead for frequently called methods.* |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 2. Stack Allocation Improvements |
||||
|
|
||||
|
.NET 10 extends stack allocation to **small arrays of both value and reference types**, with **escape analysis** ensuring safe allocation. |
||||
|
|
||||
|
**Why it matters:** Fewer heap allocations mean less GC work and faster execution, especially in high-frequency or temporary operations. |
||||
|
|
||||
|
|
||||
|
|
||||
|
------ |
||||
|
|
||||
|
### 3. ARM64 Write-Barrier Optimization |
||||
|
|
||||
|
The garbage collector’s write-barrier logic is now optimized for ARM64, cutting unnecessary memory scans. |
||||
|
|
||||
|
**Why it matters:** Up to **20% shorter GC pauses** and better overall performance on ARM-based devices and servers. |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
## Summary |
||||
|
|
||||
|
.NET 10 doubles down on **performance, efficiency, and modern standards**. From quantum-ready cryptography to smarter memory management and diagnostics, this release makes .NET more ready than ever for the next generation of applications. |
||||
|
|
||||
|
Whether you’re building enterprise APIs, distributed systems, or cloud-native tools, upgrading to .NET 10 means faster code, safer systems, and better developer experience. |
||||
@ -1,6 +1,6 @@ |
|||||
{ |
{ |
||||
"sdk": { |
"sdk": { |
||||
"version": "10.0.100-rc.2.25502.107", |
"version": "10.0.100", |
||||
"rollForward": "latestFeature" |
"rollForward": "latestFeature" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue