News

.NET 6 Preview 5 Highlights SDK Workloads, the Foundation of .NET Unification

"The future has truly arrived," said Microsoft's Richard Lander in announcing the new .NET 6 Preview 5.

November's .NET 6 GA release will culminate Microsoft's .NET unification effort, putting all the disparate desktop, web, mobile, cloud and device tooling under one umbrella platform.

That includes Xamarin mobile tech and newer tooling like WebAssembly, which drives the client-side Blazor effort that allows for web development in C# instead of JavaScript.

The outline of what's in store for .NET is detailed in the Themes of .NET site.

Themes of .NET
[Click on image for larger view.] Themes of .NET (source: Microsoft).

Key to the unification effort is a new scheme for SDK workloads, enabling Microsoft to add support for new application types without increasing the size of the SDK.

It's a highlight of the new .NET 6 Preview 5, announced June 17 in a blog post authored by Lander, program manager on Microsoft's .NET team.

"We're now in the second-half of the .NET 6 release, and starting to see significant features coming together," he said. "A great example is .NET SDK Workloads, which is the foundation of our .NET unification vision and enables supporting more application types. Like other features, it is coming together to provide a compelling end-to-end user experience."

.NET 5
[Click on image for larger view.] .NET 5 (source: Microsoft).

He explained more about the feature on GitHub in the context of .NET 5, which was originally supposed to coalesce the unification effort, which had to be postponed a year due to the COVID-19 pandemic and other issues.

The .NET Schedule
[Click on image for larger view.] The .NET Schedule (source: Microsoft).

The SDK workloads scheme will replace the old monolithic SDK approach, which was burdened by a long build times and large distribution sizes.

"Instead, all new workloads will be built and delivered separately from the SDK, and will be acquirable via your favorite installation tool (like the Visual Studio Installer, a Linux package manager, or the .NET CLI)," Lander said. "In the fullness of time, we intend for all .NET workloads to follow this pattern, resulting in a very small and focused SDK."

So it basically acts like a package manager for the .NET SDK.

Last month's .NET 6 Preview 4 introduced the ability to install optional SDK workloads via the command-line interface (CLI). For that preview, .NET MAUI and Blazor AoT workloads were supported, able to be installed after the fact on top of the .NET SDK for various scenarios.

In .NET 6 Preview 5, the workloads feature gets list and update verbs.

"These new capabilities provide a sense of the expected final experience," Lander said. "You'll be able to quickly establish your preferred environment with a few simple commands and to keep it up-to-date over time."

  • dotnet workload list will tell you which workloads you have installed.
  • dotnet workload update will update all installed workloads to the newest available version

Plans for the feature in NET 6.0+ include:

  • Expose the full set of .NET CLI verbs for acquisition
  • Separate out/expose WPF, Windows Forms and ASP.NET Core as workloads
  • Enable acquisition of all workloads via the .NET CLI, and at least ASP.NET Core and Web Assembly workloads available via Linux package managers
    • Define and implement interaction with installation tools.

Some other highlights of .NET 6 Preview 4 include:

  • NuGet package validation
  • More Roslyn analyzers
  • Enable custom guards for Platform Compatibility Analyzer
  • The ability to set a default font for Windows Forms
    Default Font Examples
    [Click on image for larger view.] Default Font Examples (source: Microsoft).
  • Improvements to Microsoft.Extensions applications
  • JsonSerializer source generation
  • WebSocket data compression
  • Socks proxy support
  • Support for OpenTelemetry metrics
  • BigInteger performance boost
    BigInteger Performance Boost
    [Click on image for larger view.] BigInteger Performance Boost (source: Microsoft).
  • Support for OpenSSL 3
  • Objective-C interoperability support

".NET 6 Preview 5 is perhaps the biggest preview yet in terms of breadth and quantity of features," Lander said in conclusion. "You can see how much Roslyn features are affecting low-level libraries features, with source generators and analyzers. The future has truly arrived. We now have a very capable compiler toolchain that enables us to produce highly-optimized and correct code, and enables the exact same experience for your own projects."

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus

Featured

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

Subscribe on YouTube