Welcome, as we do every year, to a new post about the most important conference in the world of dotnet, the dotnet conf.
Here we’ll take a look at a summary of what happened during the three days of conferences.
Table of Contents
0 - Introduction to .NET 9
.NET is not just a programming language or framework, but .NET is a platform that allows us to work in virtually any area we can imagine.

From web to games, including mobile applications, IoT, desktop, and now even more, with AI.
For this purpose, .NET provides a set of tools and an ecosystem to make our work easier. This conference is where we see the yearly improvements to these tools.

In my opinion, the .NET ecosystem is the best to work with, thanks to all the work behind it to make this possible. No other platform, language, framework, or system has as many people working full time to ensure everything surrounding the languages is such high quality, and you can really feel it.
By the way, .NET 9 is a short-term version of .NET, which means many of you won’t use it, as your company will wait for .NET 10.
1 - Improvements in NET Aspire for .NET 9
The first thing we saw this year was .NET Aspire, and it’s not surprising, since it was last year’s big announcement and the community has been eager for improvements to this library.
On this blog, we had a post covering dotnet aspire, and while I personally think they took inspiration from my Distribt library, in reality it’s a fantastic tool for productivity and ease of development when building distributed systems.
Essentially, Aspire simplifies the use of containers, resources, deployment, or even monitoring.

Aspire was launched just a few months ago, and so most of the improvements so far have been features that weren’t available before, such as connecting to virtually any database, Azure Functions support, integration with OpenAI, Ollama, etc.
And something very important, a key improvement, is the automation for deploying to Azure Container Apps, enabling even faster adoption.
Throughout the conference, we saw many examples and tutorials on how to work with Aspire, and honestly, it looks great. If you’re interested, check it out.
Personally, I think having a monorepo for distributed systems doesn’t work well for enterprise distributed applications. But the other features, like opentelemetry integration and the dashboard, and what they call integrations (which is basically distribt), are crucial for those systems. So all good on that front.
If you watch the conference, keep in mind that most of the applications demonstrated were within Aspire projects. In some cases, I don’t think it added much value, but hey, you have to push people to adopt new things.
Finally, the announcement of the .NET Aspire Community Toolkit, which is basically a place to apply integrations. Here’s the official announcement.
2 - Integration of Artificial Intelligence in .NET 9
Insert AI meme here, AI, AI, AI, AI…
Jokes aside, integrating AI into our systems is already a reality and it is going to happen, so we have to embrace it. The development team is taking the initiative to make this integration easier for developers. For this, we now have the Microsoft.Extensions.AI package, working as an abstraction for different models and services.

With this new package, we get integrations with Azure, OpenAI, Llama, Ollama, Qdrant, and more. In a demo by Steve Sanderson, we could see just how simple these integrations are and how powerful AI can be if used correctly.
I recommend everyone to watch the presentation. (I’ll put the link if it is published separately).
3 - MAUI Improvements in .NET 9
Honestly, I was expecting them to announce the death of MAUI, but I was happily surprised.
For those not up to speed, MAUI is a platform to build cross-platform applications for Windows, Mac, and also for Android and iOS mobile. It was officially released in .NET 7 but should have been launched in .NET 6 as it was postponed for a year, giving other libraries like Uno Platform or Avalonia a head start.
I personally thought Microsoft would let it die, but no, they’ve worked really hard on it, fixing more bugs and releasing more features than ever this year.

They’ve also teamed up with Syncfusion for its UI via the MAUI Toolkit.
So hopefully this trend will continue and MAUI will be fully revitalized, because the reviews I see online are not the best.
From my point of view, MAUI still works as a Blazor shell, so depending on how much use the APP will get, it might be your best option:

4 - What’s New in C# 13
It wasn’t until well over 3 hours into the event that we finally saw the C# 13 updates, which is strange, as for years this has always been shown at the very beginning of the conference.
There’s a simple explanation: this year there aren’t as many improvements as in previous years, or rather, there are, but they’re not as impactful as in previous versions, so they didn’t give it as much priority.
On this blog we had a very comprehensive post on the new features of C# 13 .NET 9.
5 - Improvements in ASP.NET CORE and Blazor in .NET 9
Beyond these main talks, there were mentions of changes here and there for different systems, and here’s what stood out in ASP.NET Core and Blazor.

5.1 - New Distributed Cache for .NET9
Until now, we’ve always used IDistributedCache, but in terms of performance it’s not the best choice, since it works directly with key-value where the value is a byte array. The problem is that it’s inefficient at assigning bytes in memory and can be affected by what is called a cache stampede.
Cache stampede happens when many requests hit the same key simultaneously, and if it’s not in cache, they all hit the database.
In .NET 9 we have the new HybridCache class, which solves all the previous issues, adds more functionalities like in-memory and distributed cache at the same time, and for most cases, it just works by changing the type you’ve injected.
5.2 - SignalR Improvements in .NET 9
Small improvements in SignalR, like support for AOT, which is quite important. Polymorphism works in the hub, and there’s a tracing improvement, which is great for Aspire, observability, etc.
6 - Other dotnetconf 2024 Sessions
As always, a small section to mention other talks or sessions worth paying attention to.
6.1 - Azure with .NET 9 and Aspire
Lots of talks related to Azure, especially useful for those working with Aspire, since there were multiple sessions covering this topic, and they show how simple it is to implement Aspire services on Azure.
6.2 - Removal of Swagger in C#
Swagger is no longer included in default templates, since the Microcephaly team has created the Microsoft.AspNetCore.OpenApi package, which generates the OpenApi document just like Swagger did, but maintained by Microsoft.
If you’re curious about the reason for this change, here’s the GitHub thread explaining it.
6.3 - Testing.Framework in .NET
We had an announcement for a VS test alternative, designed to run tests in multiple environments, your PC, CLI, CI/CD pipeline, or wherever, since it doesn’t rely on vstest.console or the dotnet test command, as it integrates directly into the project, making it highly portable.

It’s worth highlighting that it’s fully compatible with all current testing frameworks. I’ll try to show some examples on this blog since I found the session very interesting.
6.4 - Blazor and MudBlazor
Although there weren’t any major Blazor announcements this time, I want to mention the MudBlazor library, a UI library that makes it easy to build apps using Blazor. I tried the library a couple of years ago for testing and really liked it. So now that they had a session about it, I wanted to highlight it here.
6.5 - Cross-Platform Applications in .NET
As every year, just like with MAUI, we had sessions on Avalonia and UNO platform, which are today’s most popular options for building cross-platform applications with C#.
Special mention to Héctor Uriel Pérez Rojas, who gave a presentation about a tool he built (https://xamlify.net/) to convert Figma designs to xaml, which I personally found very good.
If there is any problem you can add a comment bellow or contact me in the website's contact form
 
                    