Cloud and AI apps take center stage in .NET 9

A first preview release of the next .NET sets the scene for a year of platform development focused on cloud-native and AI-powered applications.

shutterstock 218547988 retro stage with red curtains standing mic and giant gold star with lights
Pavel L Photo and Video / Shutterstock

Just three months into the tenure of .NET 8, it’s already time for Microsoft and the .NET Foundation to start laying out their plans for the next release, .NET 9, which is due to arrive in November with .NET Conf.

You can think of .NET’s annual release cadence as an agile development model writ large, each year ushering in a new sprint that builds on a select set of user stories. Of course, some developments will target planned language evolutions, while others will support the overall software lifecycle with maintenance updates and bug fixes.

The .NET development and release cycle also must align with supporting development tools, namely Visual Studio and Visual Studio Code plugins, including the new C# Dev Kit. While this adds some constraints to .NET’s roadmap, it does ensure that when .NET 9 finally drops, the tools you need to build, test, and debug your code will be ready for you to start work.

A platform for cloud-native and AI apps

For .NET 9, Microsoft is focusing on two key areas. The first, improved support for AI applications, shouldn’t be a surprise to anyone who has watched Microsoft for the past year. The company’s partnership with OpenAI and its adoption of language models, as well as other forms of machine learning, has been both rapid and deep, with tools like Semantic Kernel providing a basis for building enterprise-grade AI applications that go beyond the novelty of transformer-powered chatbots.

The second area, making .NET a platform for cloud-native application development underscores the importance of Azure and Kubernetes to Microsoft’s revenue stream. Improvements on this front include optimizing performance and startup time, with a focus on application scaling. The tools needed to deliver this should simplify integrating .NET with common cloud infrastructure services. Azure’s slow pivot to an open cloud-native stack is almost complete.

Microsoft’s launch of .NET Aspire at .NET Conf 2023 showed how the company intends to use .NET as part of this new stack, with an opinionated approach to application and service integration. Whereas the early internet was built on the LAMP stack of Linux, Apache, MySQL, and Perl/PHP/Python, Microsoft’s cloud-native vision consists of Azure, Kubernetes, PostgreSQL, Redis, and Aspire. (AKPRA? Or PARKA, maybe?) Key to this approach is cross-platform .NET and its ability to build and deploy into a cloud-optimized container based on chiseled Ubuntu.

Aspire is intended to accelerate microservice delivery with .NET, simplifying connections to those key building blocks, turning what would have been a complex set of configuration files and hand-assembled REST calls into a familiar method call, loading dependencies and prerequisites as part of your application definition. Tying all that in with other optimizations should quickly make Aspire the preferred approach to building .NET for the cloud.

A little help from .NET’s friends

Microsoft has realized that .NET can’t do all of this alone, that the company needs to work with both OS and hardware platform providers to deliver better ways of managing secrets and managing API access. If it’s successful here, and there’s no reason why it shouldn’t be, that success should provide an incentive for other cloud-native platforms to take advantage of the work being done by the .NET team.

One interesting snippet in the announcement blog post is the expansion of support for native ahead-of-time (AOT) compiled .NET. This implies a streamlined approach to setting up the necessary Windows Subsystem for Linux (WSL) or Docker environment to compile and test Linux .NET applications. This should simplify building applications that can scale quickly, either by downloading and deploying new containers on demand or by restarting pods that have scaled to zero. Cloud-native applications need a platform that’s been designed to run in the cloud, so extending the container and AOT capabilities of .NET 8 make a lot of sense for a modern cloud-ready release of .NET.

Having a set of themes for the upcoming year of development is only part of the necessary process of putting together a .NET release. After all, .NET isn’t really a monolithic project, but a fleet of many different projects all moving in the same direction, at different speeds. The runtime and the platform have different requirements, so we can expect that different parts of the project will release preview features at different points throughout the year. Part of that approach requires addressing the backlog of planned features and bug fixes, as documented in GitHub.

Working with .NET 9 Preview 1

The first preview dropped February 13. In a change to how .NET announcements and documentation are released, the .NET team is using GitHub and GitHub Discussions to manage its release notes. This should allow it to get basic documentation out more quickly, and include the community in improving it, alongside reporting issues and bugs and making pull requests.

If you’re planning on trying out .NET 9 at this early stage, you’ll need to have the current preview release of Visual Studio 2022 with the .NET 9 SDK. If you prefer a lighter development environment, you have the option of using the C# Dev Kit in Visual Studio Code. A .NET 9 version of the MAUI (Multi-platform App UI) toolkit is available and can be installed as part of your development environment.

You can download the .NET 9 SDK for Linux, Windows, and macOS, with x86 and Arm releases. If you’re building web server applications and you want to track development of Blazor, a .NET 9 preview of the ASP.NET Core runtime is available.

The initial preview release has support for three languages: C# 12.0, F# 8.0, and Visual Basic 16.9. These are the current release versions of the core .NET languages, so you can start to explore the platform features without having to learn new language versions. We’re still very early in the .NET 9 development cycle, so you shouldn’t expect updated language releases yet. The runtime is a moving target, changing rapidly, and language updates will need to wait for it to be more stable.

The initial list of changes in .NET 9 is relatively short, but we’ll see many more changes as further previews are launched. For now, it’s worth thinking about the themes that the release will be addressing, and how cloud-native development and AI will impact your software. Most of us will wait to deploy .NET 9 features until after the release of the next long-term support version, .NET 10, in 2025. But if you’re interested in helping set the agenda for the next few years of .NET development, then download the first preview and start exploring what’s going to be next.

Copyright © 2024 IDG Communications, Inc.