.NET Development

Choosing Between .NET 6 and .NET 7 for a Business App

.NET 7 is out, but .NET 6 is the long term support release. Here is how the support dates, new features, hosting and upgrade effort compare, and which one makes sense for your business app in 2023.

Quick answer: .NET 6 is a long term support (LTS) release supported until November 2024. .NET 7, released in November 2022, is a standard term support (STS) release supported until May 2024. For most business apps that need to stay stable with little attention, .NET 6 is the safer choice today, with a planned move to .NET 8 (the next LTS) after it ships in late 2023. Choose .NET 7 when you need a specific feature or performance gain and you are comfortable upgrading again within about a year.

How .NET releases and support work now

Since .NET 5, Microsoft ships one major .NET release every November. The pattern is simple:

  • Even numbered releases are LTS. They get three years of free support and patches.
  • Odd numbered releases are STS. They get 18 months of support.

Both get the same monthly security and bug fix updates while they are supported. The difference is only how long that lasts. Once a version is out of support, it stops getting security patches, which is the real business risk.

That gives these key dates:

Version Released Support type End of support
.NET 6 November 2021 LTS November 2024
.NET 7 November 2022 STS May 2024
.NET 8 Expected November 2023 LTS Three years after release

Notice that .NET 7 support ends six months before .NET 6 support, even though it is the newer release. That surprises a lot of people.

What .NET 7 adds over .NET 6

.NET 7 is an incremental release. It does not change how you build apps the way the move from .NET Framework to .NET Core did. The main changes business teams notice are:

Performance

Microsoft put a lot of work into runtime and library performance in .NET 7, including improvements to the just in time compiler and on stack replacement. Many apps get faster after upgrading without code changes. How much faster depends entirely on the app, so measure your own workload before and after rather than relying on published benchmarks.

ASP.NET Core 7 features

  • Rate limiting middleware built in, useful for public APIs and login endpoints.
  • Output caching middleware, which stores whole responses on the server.
  • Minimal API improvements, including route groups, endpoint filters and typed results, which make minimal APIs more practical for larger services.
  • gRPC JSON transcoding, so a gRPC service can also be called as a JSON HTTP API.

If you build APIs, our guide to ASP.NET Core Web API for business apps covers the basics that both versions share.

Entity Framework Core 7

EF Core 7 adds JSON column mapping for SQL Server and bulk update and delete methods (ExecuteUpdate and ExecuteDelete) that run a single SQL statement instead of loading every row first. For apps with heavy reporting or batch jobs, the bulk methods alone can be a good reason to look at .NET 7. Our article on Entity Framework Core pros and cons explains where EF Core fits in general.

C# 11

.NET 7 comes with C# 11, which adds raw string literals, required members, list patterns and generic math, among others. These are quality of life improvements for developers. None of them is a reason on its own for a business to upgrade.

Other changes

  • Native AOT compilation for console apps, which produces a single native executable with fast startup. It does not yet cover ASP.NET Core apps.
  • Built in container publishing from the .NET SDK, which can produce a container image without writing a Dockerfile.
  • Continued work on .NET MAUI for cross platform desktop and mobile apps, and on Blazor. If you are weighing Blazor, see Blazor WebAssembly vs Blazor Server.

Hosting and tooling differences

Before choosing .NET 7, check that everything around your app supports it:

  • Visual Studio: .NET 7 needs Visual Studio 2022 version 17.4 or later. .NET 6 works with earlier 2022 versions.
  • Azure App Service: supports both.
  • Azure Functions: this is the one to watch. The in-process model supports .NET 6. Running Functions on .NET 7 requires the isolated worker model, which has some differences in bindings and middleware. Our guide to Azure Functions with .NET explains the two models.
  • Third party libraries and vendors: most popular NuGet packages target .NET 6 and work on .NET 7, but check any commercial components, reporting tools or vendor SDKs your app depends on. Some vendors only certify LTS releases.
  • Shared hosting and on premises servers: make sure the server has the .NET 7 hosting bundle installed, or publish self contained.

The upgrade effort from .NET 6 to .NET 7

For most apps, moving from .NET 6 to .NET 7 is small: change the target framework, update NuGet packages, review the list of breaking changes Microsoft publishes for the release, then build and run your tests. Many teams do it in a day or two of focused work plus testing time.

The real cost is not one upgrade. It is the rhythm. If you pick .NET 7, you are signing up to move again to .NET 8 before May 2024. If you stay on .NET 6, you have until November 2024 and can skip straight to .NET 8.

A good set of automated tests makes every upgrade cheaper. If your app has none, read our guide on unit testing in .NET before you plan any version change.

Which one should you choose?

Choose .NET 6 if

  • The app is stable and changes rarely.
  • Nobody has regular time set aside for maintenance.
  • You depend on vendors or components that only certify LTS releases.
  • You use Azure Functions in-process and do not want to change models yet.
  • You want one upgrade (to .NET 8) instead of two.

Choose .NET 7 if

  • You need a specific feature such as rate limiting, output caching, EF Core bulk updates or JSON columns.
  • The app is performance sensitive and testing shows a meaningful gain on your workload.
  • You have an active development team that ships regularly and can treat the move to .NET 8 as routine.
  • You are starting a new project that will not go live for several months, so you can move to .NET 8 close to launch or soon after.

What about new projects?

For a new business app starting now, both are defensible. A common approach is to build on .NET 7 if you want its features, keep dependencies current, and plan the .NET 8 upgrade into the project schedule. If the app will be handed over to a team with little capacity for upkeep, start on .NET 6 and plan a single move to .NET 8.

If you are still on something older

Some businesses reading this are not choosing between 6 and 7 at all. They are on .NET Core 3.1, which reached end of support in December 2022, or on .NET 5, which went out of support in May 2022. Both are already unsupported and should move first. Apps on the older .NET Framework have a different decision to make, which we cover in .NET Framework to .NET Core: should you move now? and our guide to moving .NET Framework apps to .NET 5, whose steps apply to .NET 6 and 7 as well.

A short checklist before you decide

  1. List every app and service you run and the .NET version each one uses.
  2. Note the end of support date for each version.
  3. Check hosting, Azure Functions models and vendor components for .NET 7 support.
  4. Decide who owns upgrades and how much time they have each year.
  5. Pick LTS for low maintenance apps and STS only where there is a clear benefit.
  6. Put the next upgrade date in the calendar now.

Common questions

Is .NET 7 less stable than .NET 6?

No. STS does not mean lower quality. Both releases are production ready and get the same patches. STS only means a shorter support window.

Can I skip .NET 7 and go from .NET 6 to .NET 8?

Yes. That is a common and sensible plan for apps on .NET 6.

Will .NET 6 apps run on a server with .NET 7 installed?

Each app runs on the runtime it targets. You can install several runtimes side by side on the same server, so a .NET 6 app keeps using the .NET 6 runtime.

What happens after end of support?

The app keeps running, but it stops getting security fixes. For anything facing the internet or holding customer data, that is a risk you should avoid.

The bottom line

.NET 6 is the steady choice for most business apps in 2023, with a single upgrade to .NET 8 planned before November 2024. .NET 7 is a good choice when it gives you a feature or performance gain you need and your team can upgrade again within about a year. The worst choice is staying on a version that is already out of support.

If you want help planning upgrades for your .NET apps or building something new, see our custom development services.

Imran M

About the author

Imran M

Leave a Reply

Your email address will not be published. Required fields are marked *

Ready to improve your website?

Let's build a faster, higher performing website.