If your applications run on .NET 8 or .NET 9, the clock is ticking: both reach end of support in November 2026. After that date they stop receiving security patches. This guide explains what the .NET 10 upgrade involves, what you gain, and a step-by-step plan to move production systems safely.

The support timeline in plain terms

VersionTypeEnd of support
.NET 8Long-term support (LTS)November 10, 2026
.NET 9Standard-term support (STS)November 10, 2026
.NET 10Long-term support (LTS)November 14, 2028

Dates come from Microsoft's official .NET and .NET Core support policy — check it for the latest information before planning. The practical conclusion: .NET 10 is the version to target for any application you expect to run for the next few years. (.NET 11 is currently at release-candidate stage; as an odd-numbered release it will be a standard-term support version.)

What .NET 10 brings

Every .NET release includes broad performance work across the runtime, garbage collector, JIT compiler and libraries, so many applications get faster simply by upgrading. Beyond performance, highlights relevant to business applications include:

  • C# 14 language improvements, including extension members and the field keyword for property accessors, which reduce boilerplate.
  • ASP.NET Core improvements such as OpenAPI 3.1 support for generated API documents, built-in validation for Minimal APIs and passkey support in ASP.NET Core Identity.
  • Entity Framework Core 10 additions, including support for vector search and the JSON data type in SQL Server / Azure SQL — useful foundations for AI features such as RAG.
  • Continued improvements to containers, cloud-native tooling and diagnostics.

See Microsoft's "What's new in .NET 10" documentation for the complete list; the exact benefit depends on which parts of the platform your application uses.

Step-by-step upgrade plan

1. Inventory

List every application, its current target framework, hosting model and third-party packages. Prioritize internet-facing and business-critical systems.

2. Update the build environment

Install the .NET 10 SDK on developer machines and build agents, update your container base images and pin the SDK with a global.json file so builds are reproducible.

3. Retarget and update packages

Change <TargetFramework> to net10.0 and update Microsoft packages (ASP.NET Core, EF Core, extensions) to their 10.x versions. Update third-party packages and check each one supports .NET 10.

4. Review breaking changes

Microsoft publishes a breaking-changes list for each release. Read the sections for the areas you use — ASP.NET Core, EF Core, serialization, cryptography — and treat new obsolete-API warnings as work items rather than noise.

5. Test

Run unit and integration tests, then a full regression pass in a staging environment that mirrors production. Pay attention to serialization output, date and culture handling, authentication flows and database queries generated by EF Core.

6. Measure

Compare response times, memory and CPU against your .NET 8 baseline under realistic load. Most applications improve; if something regresses, you want to know before your users do.

7. Deploy gradually

Use a blue-green or canary deployment so you can roll back quickly, and keep the previous build ready until the new version has run cleanly for a while.

What about applications still on .NET Framework?

.NET Framework 4.8 follows a different support model as part of Windows, so it is not affected by the November 2026 deadline in the same way. But it will not receive new features. If you are planning a larger move, read our .NET Framework to .NET migration guide.

Common upgrade pitfalls

  • Leaving the upgrade until the last month and discovering an unsupported dependency.
  • Upgrading the code but not the container images or build agents.
  • Ignoring analyzer warnings that point to behaviour changes.
  • Skipping load testing because "it is only a version bump".

Key takeaways: .NET 8 and .NET 9 leave support in November 2026; .NET 10 is the LTS target through 2028. Upgrade with an inventory, package updates, a breaking-change review, full regression testing and a gradual rollout.

Short on capacity for upgrades? Our .NET contract developers handle upgrades alongside your team, or talk to us about an upgrade assessment.