.NET 8: to update or to not update?

My .NET journey began back in 2014, just a few months after .NET Core 1.0 was released. Seven years in, and we’ve now reached version 8: without the “Core” in the name. Recently, my client asked me: “Are we going to upgrade our backend to .NET 8? And if so, why or why not?”
In this blog post, I’ll walk you through the considerations I made when answering that question, highlighting the key differences between .NET 8 and .NET 7 along the way.
Weigh the risks and assess compatibility with your application
Personally, I’m a strong advocate for embracing change and updates. Adapting to something new is often just a matter of time and it brings a welcome sense of renewal. This may sound a bit blunt, but staying open to change makes you more adaptable and better equipped to adjust when needed.
There are always people who hesitate to upgrade, pointing to early bugs or potential security risks. So they wait: “Let’s revisit this in a few months.” But let’s be honest—postponing often turns into never. And if there are still issues now, are you just going to delay it again?
Staying current with updates doesn’t have to be a huge effort — unless you let them build up. That applies even to large platforms. Wait too long, and you’ll often find that parts of your application need to be rebuilt. In the worst case, the whole thing needs replacing. That’s a much bigger problem than just staying on top of things.
Weigh the benefits, changes and new features introduced in .NET 8
Beyond the “to update or not to update” philosophy, it’s also worth taking a closer look at the new features that come with an update. In this post, I’ll focus on the features Microsoft itself highlights, to better understand the direction they’re heading in. Since there are too many to cover here, I’ve selected a few.
- Performance Improvements
- Native AoT
- AI Integration
- .NET Aspire

Noah Steijlen
.NET Developer
Performance Improvements
What’s not to love? Performance across the board is up in .NET 8. Based on my own benchmarks and tests from other devs, we’re looking at an average of 30% improvement. That really adds up when you think about the amount of LINQ queries your app runs. A great reason to upgrade.
Native AoT
For those unfamiliar with it: AoT (Ahead-of-Time) compilation translates your .NET code directly into machine code. This differs from JIT, where source code is first compiled into IL (Intermediate Language) and then translated into machine code at runtime.
With .NET 8, the file size of AoT applications has been reduced by approximately 40% compared to .NET 7. In addition, .NET 8 now supports all Apple platform architectures (macOS and iOS), as well as Android (x64 and Arm64). This is intresting, because it shows Microsoft’s commitment to broad .NET support — and they’re making strong progress.
.NET Aspire
This is a new solution introduced with .NET 8. Aspire helps streamline your development experience for cloud applications. How? By simplifying the management of multi-project applications and running them within shared environments. This can significantly help you bring clarity and consistency to your application landscape. Aspire may be new, but it already offers promising features — enough to deserve a blog post of its own.
AI Integration
With .NET 8, Microsoft introduces support for AI plugins and tooling, including seamless integrations with Azure. Since the global rise of ChatGPT, the capabilities of AI have become more widely understood. Needless to say, support for these innovations speaks for itself.

Conclusion
Safe to say, Microsoft is pushing forward on several fronts. From new solutions for cloud application management, to broader platform support for native .NET applications, and the integration of AI capabilities. I’m curious to see what they’ll bring next.
All in all, I’ve recommended my current client to proceed with the upgrade, as the improvements in performance and usability offered by the new features are substantial.