Microsoft’s .NET 9 software development framework has reached the release candidate stage with featured enhancements to the WebSocket APIs. Additionally, the .NET MAUI Visual Studio Code extension has an added capability to horizontally align text.

The first of two planned release candidates was announced September 11 and can be downloaded from dotnet.microsoft.com. It is expected as a production release in November.

A library update adds APIs on ClientWebSocketOptions and WebSocketCreationOptions. These allow developers to opt in to sending WebSocket pings and aborting the connection if the peer does not respond in time. Previously, developers could specify a KeepAliveInterval to keep the connection from remaining idle, but there was no built-in mechanism to enforce the peer response.

Also in the library space, the release candidate features ZLibCompressionOptions and BrotliCompressionOptions types to set the algorithm-specific compression level and compression strategy for users who need more fine-tuned settings than the existing CompressionLevel supports. New compression options are designed to allow for expanding options moving forward. In another library change, LogLevel.Trace events logged by HttpClientFactory no longer include header values by default.

For .NET MAUI in .NET 9, the focus is to improve product quality, including expanding test coverage, end-to-end scenario testing, and bug fixing. These improvements were emphasized in the seven preview releases of .NET 9. The VS Code extension now features improvements to HorizontalTextAlignment.justify so that it horizontally aligns text in Labels.

For ASP.NET Core, the RC bulletin notes that preview 6, from July 15, added initial support for SignalR distributed tracing. RC1 improves signal tracing with the SignalR client having an ActivitySource named Microsoft.AspNetCore.SignalR.Client. Hub invocations now create a client span. Also, hub invocations from the client to the server now support context propagation. Propagating the trace context enables true distributed tracing, Microsoft said. It is possible now to see invocations flow from the client to the server and back.

.NET 9 also adds a dotnet workload history command to the .NET SDK. This command shows a history of workload installations or modifications for a given .NET SDK installation. The history includes versions of the workloads installed and when they were installed. The feature is intended to help developers understand the drift in workload installations over time and help with making informed decisions about which workload versions to set for an installation.

.NET 9 was preceded by .NET 8, which arrived last November. That release emphasized dynamic memory limits and JSON enhancements.