What's New in .NET 9
The next .NET is here!
Since Microsoft released 1.0 in 2002, .NET has offered a versatile framework for developers to build web, mobile, and desktop applications. Even today, .NET continues to provide time-saving solutions that can accelerate development lifecycles while improving software performance quality and security.
For example, its compatibility with many languages and environments, (visual) integrated development environment (IDE), extensive component libraries, reusable code, and prebuilt system of APIs and tools are just some of the ways this platform drives developer success. And now, we're at .NET 9! So why does it matter?
First and, arguably, most important, keeping up with these updates protects your software. They come with security patches that protect .NET apps from system vulnerabilities. It also ensures you know the new libraries, performance enhancements, and frameworks you can use to build a modern application better and faster.
So, without further ado, below are the updates you should know about in .NET 9.
Notable Features and Improvements of .NET 9
Succeeding the .NET 8 predecessor, .NET 9 primarily focuses on helping build cloud-native apps and enhancing their runtime performance. Some of the most notable features to look out for are:
- New Feature Switch Attribute Model: Developers can toggle to disable modular components they don’t need from a library without bringing on the entire framework. This will make enabling or disabling features easier and more granular without extensive changes to the codebase or adding unnecessary (and unwanted) components.
- Dynamic Garbage Collection Adaptation / Dynamic Adaptation To Application Sizes (DATAS): DATAS was added in .NET 8.0 as an opt-in feature but is replacing Server GC as the new default in .NET 9.0. DATAS in .NET improves memory management by adjusting heap size based on application memory demands, making it proportional to long-lived data rather than server capacity. This approach is especially beneficial for "bursty" workloads and memory-constrained environments, as it conserves resources and supports capacity planning, ultimately optimizing performance in varying conditions.
- System.Text.Json Enhancements: You can now use nullable reference type annotations and perform JSON schema export. This provides more customization within JSON indentation and capabilities for reading multiple root-level values, simplifying complex JSON structures.
- New LINQ Methods: Offers CountBy and AggregateBy, enabling developers to perform aggregations (by key) without the overhead of creating intermediate collections (through the GroupBy function). This creates cleaner code and improves data processing performance for larger sets.
- PriorityQueue Enhancements: Comes with a new "Remove" method in the PriorityQueue class to handle priority updates without recreating the entire queue. This simplifies queue management in applications that require dynamic priority adjustments.
- Updated Cryptography: The new CryptographicOperations.HashData method allows developers to specify the desired algorithm directly, eliminating the need to handle multiple methods for different hash functions. Additionally, the introduction of the KMAC (Keccak Message Authentication Code) algorithm enhances security with robust message authentication and pseudorandom generation capabilities.
- New PersistedAssemblyBuilder Class for Reflection: Lets you save emitted assemblies with full PDB support, allowing better debugging and inspection of dynamically generated code while enhancing the developer experience for reflection-based scenarios.
- New TimeSpan FromX Methods: You can create "TimeSpan" objects from integers. This helps eliminate precision errors that can occur with floating-point calculations and contributes to more reliable time-related logic in applications.
- Workload Sets in .NET SDK: All workloads stay at a specific version until intentionally updated. This ensures a more stable development environment while making managing dependencies more explicit and reduces the risk of compatibility issues.
- Improved Unit Testing Integration: Uses MSBuild integration to run multiple tests simultaneously. This boosts developer efficiency and reduces the time to validate code changes in continuous integration workflows.
- NuGet Security Audits: Uses automated security audits for direct and transitive package references so you can identify vulnerabilities in dependencies earlier on and foster better application security.
- Terminal Logger Improvements: Becomes a default setting and is easier to use through summaries of total failures and warnings at the end of code builds so you can quickly understand build outcomes.
- EF Core Enhancements: Improves the Azure Cosmos DB provider for NoSQL with better performance. It also introduces AOT compilation and pre-compiled queries to speed up app development and optimize resources used in cloud-based environments.
- C# 13 New Language Features: New syntax features, like params collections, implicit indexer access in objects, partial properties, and indexers, and "enable" ref locals and unsafe contexts. This all makes code-writing faster for C# and reduces boilerplate.
MESCIUS Products Support .NET 9
We proudly announce that many of our most popular API libraries and developer solutions will support .NET 9! Below is a breakdown of each one:
ComponentOne
ComponentOne offers developers over 400+ .NET UI controls via FlexGrid (for data grids), FlexChart (for .NET charts), FlexPivot (for pivot charts), and many more controls, like ribbon UIs, scheduler APIs, and advanced input components.
With the .NET 9 update, your .NET apps will have even more modular flexibility and improved performance. We are excited to announce that, starting today, you can access our .NET 9-compatible component libraries from NuGet.org.
As with any new version of .NET, there are often sweeping changes and issues across the entire .NET stack. Our team has been diligently working with every .NET 9 preview this past year to address these changes before they reach our users. This includes changes to the drag-and-drop cursor, clipboard, and binary serialization in several of our libraries.
We've done our best to ensure you can migrate to .NET 9 as soon as possible and as seamlessly as possible while continuing to develop with the ComponentOne controls.
ActiveReports.NET
ActiveReports.NET lets you deliver interactive reports within .NET apps through a vast library and intuitive report design and control tools.
As with any new release of .NET, the team has been planning and working on implementing support for .NET 9.0 ahead of time, and our next major release version, v19, will be fully compatible with .NET 9.0.
You can expect to see performance improvements with ActiveReports.NET due to some of the key performance optimizations they’ve added in .NET 9.0. For example, DATAS, as the new default for garbage collection, will optimize memory usage based on application requirements and result in a more performant experience overall. In addition, things like loop optimizations, inlining improvements, and Arm64 vectorization should contribute to better overall runtime performance.
Spread.NET
Spread.NET provides UI components for developers seeking Excel-like spreadsheet functionality in .NET applications.
Like the other MESCIUS products, .NET 9 will ensure better app performance thanks to garbage collection that includes dynamic adaptation to the application size, loop optimizations, inlining, and Arm64 vectorization and code generation.
Document Solutions
The Document Solutions line enables users to quickly generate, load, edit, and save XLSX spreadsheets, PDFs, Images, and DOCX files into your .NET apps using its powerful document APIs.
Because incorporating complex files into apps can often come with hiccups, the .NET 9 updates focusing on performance and data processing are most valuable.
The updated cryptography can also be handy for dealing with PDFs holding sensitive, classified, or proprietary information. You can quickly integrate security encryption protocols, making the entire app (and its files) more secure.
Incorporate .NET 9 Into Your Stack with MESCIUS
.NET 9 is shaping up to be an ambitious but beneficial update for developers working in the cloud. When combined with MESCIUS libraries, these enhancements provide the ultimate time-saving solution, helping to quickly solve problems and focus on creativity, innovation, and optimization.