.NET 8 and .NET 9 End of Support in November 2026: How to Plan
.NET 8 and .NET 9 reach end of support on November 10, 2026. What it means, when to pick .NET 10 LTS or .NET 11, and which other Microsoft deadlines are coming.
November 10, 2026 is not just another date on the IT calendar. That day, .NET 8 and .NET 9 both reach end of support. There’s a reason they expire together: .NET 8 is a Long Term Support (LTS) release, .NET 9 is a Standard Term Support (STS) release, and Microsoft’s release cycle lines them up on the same day.
For many companies in Latin America, that means a good share of their APIs, internal services and web applications will stop receiving security patches in under two months. And the date doesn’t arrive alone: several other Microsoft ecosystem deadlines cluster around it, and it pays to review them in the same exercise.
This article covers what changes, what your options are, and how to organize the migration without improvising.
What “end of support” means in practice
End of support doesn’t mean your application stops working on November 11. It means Microsoft stops shipping patches for that version, including security fixes. Every vulnerability discovered from that day on stays open in your systems.
There’s a nuance many teams miss: even before November 10, being “on .NET 8” isn’t enough. The official policy requires running the latest patch to remain supported. .NET 8.0.31 and .NET 9.0.20 shipped on September 8, 2026, and Microsoft is blunt about it: if you’re running .NET 8.0, you must update to 8.0.31 to remain supported. If your servers run a patch from months ago, you’re technically already out of support.
To see why this matters, consider one data point: the release notes for .NET 10.0.12, published that same September 8, list six CVEs. Monthly patches are not cosmetic.
The full calendar: it’s not just .NET 8 and 9
These are the dates a CTO or IT manager should keep on a single sheet (see also our end-of-support calendar):
| Date | What expires or happens |
|---|---|
| Jul 14, 2026 | SQL Server 2016: end of extended support (already passed; paid Extended Security Updates available for 3 years, through 2029) |
| Nov 10, 2026 | End of support for .NET 8 (LTS) and .NET 9 (STS) |
| Nov 10, 2026 | End of support for the Azure Functions in-process model for .NET apps |
| Nov 10, 2026 | End of support for PowerShell 7.4 LTS |
| Nov 10–12, 2026 | .NET Conf 2026, free and online: .NET 11 launch |
| Jan 12, 2027 | End of support for Windows Server 2016 and .NET Framework 4.6.2; Visual Studio 2022 mainstream support ends |
| Oct 12, 2027 | End of support for SQL Server 2017 |
| Nov 14, 2028 | End of support for .NET 10 (LTS) |
Two items deserve special attention. First, if you run Azure Functions on the in-process model, the migration isn’t just a target framework change: it means moving to the isolated worker model, with changes to packages, startup and bindings. Treat it as its own project. Second, if your automation scripts or pipelines depend on PowerShell 7.4, they belong in the same work package.
.NET 10 LTS or .NET 11 STS: which one?
The question we hear most is whether it’s worth jumping straight to .NET 11, which is about to ship. Here are the facts:
- .NET 10 is LTS and supported until November 14, 2028. It’s already on patch 10.0.12.
- .NET 11 is STS. RC1 shipped on September 8, 2026 with a go-live license (you can run it in production with support), brings C# 15 with unions stabilized, and works in Visual Studio 2026 Insiders and the VS Code C# Dev Kit. The official launch is at .NET Conf 2026.
Our general recommendation for enterprise environments:
- Choose .NET 10 if your organization upgrades infrequently, has certification or audit processes, or needs a stable foundation for the next two years. It’s the natural choice for most business systems.
- Consider .NET 11 only if your team already upgrades continuously, has solid test coverage and wants the new language features. An STS release means migrating again sooner.
What makes no sense today is moving from .NET 8 to .NET 9: it expires on the same day.
An eight-step action plan
- Inventory. List every application and service with its target framework, the runtime version installed on each server or container image, and an owner.
- Patch now. While you migrate, update to 8.0.31 or 9.0.20. It’s cheap and keeps you supported until November 10.
- Prioritize by exposure. Internet-facing systems and anything handling sensitive data first; internal systems after.
- Check dependencies. Confirm your NuGet packages, ORM and third-party libraries have .NET 10-compatible versions.
- Azure Functions. Identify in-process functions and plan their move to the isolated model separately.
- Tests. If coverage is low, write at least smoke and integration tests for critical flows before changing anything.
- Containers and CI/CD. Update base images, the SDK on build agents and CI/CD pipeline configuration.
- Look past November. Use the inventory to spot Windows Server 2016, .NET Framework 4.6.2 and SQL Server 2016/2017, which have already expired or expire in the following months.
What about AI? The GitHub Copilot modernization agent
On July 9, 2026, Microsoft announced a .NET modernization agent in GitHub Copilot that works in three phases: assess, plan and execute. It’s available in Visual Studio (the “Modernize” option), VS Code, Copilot CLI and the Copilot app.
It can save time on mechanical work, but set expectations carefully: public user comments on the announcement report that it handles class libraries well but struggles with ASP.NET Core projects. In other words, precisely the APIs and web apps that tend to matter most. Use it as an accelerator, with human review and tests, not as an autopilot.
The hardest case: what still runs on .NET Framework
If part of your portfolio still runs on .NET Framework 4.6.2, Windows Server 2016 or SQL Server 2016, January 12, 2027 is your next frontier. This isn’t about bumping a version number; it’s real modernization work: untangling Windows dependencies, replacing components that don’t exist in modern .NET and sometimes redesigning entire modules.
The sooner you take inventory, the more room you have to move in stages instead of in a rush. If that’s where you are, at Nextsoft we support legacy system modernization together with specialized strategic partners, moving in stages.
FAQ
Will my .NET 8 application stop working on November 11?
No. It will keep running, but without new security patches. Risk grows with every vulnerability disclosed after that date, and it can complicate audits and compliance requirements.
Can I use .NET 11 RC1 in production?
Microsoft released it with a go-live license, so it’s supported in production. Even so, for most enterprise systems it’s wiser to migrate to .NET 10 LTS and evaluate .NET 11 after launch.
What about SQL Server 2016?
Its extended support ended on July 14, 2026. Microsoft offers paid Extended Security Updates for three years, through 2029, as a bridge while you migrate.
Conclusion
November 10, 2026 bundles several deadlines at once, and the following months bring more. The good news is that the path is clear: patch now, take inventory, migrate to .NET 10 LTS in order of risk, and use that same inventory to prepare for what expires in 2027. If you’d like to sanity-check your plan with a team that works on these migrations every day, let’s talk.
Sources
- →Microsoft - .NET Support Policy
- →GitHub dotnet/core - .NET 10.0.12 Release Notes
- →Microsoft Learn - Products Reaching End of Support in 2026
- →Microsoft Learn - Products Reaching End of Support in 2027
- →Microsoft Learn - SQL Server 2016 Lifecycle
- →.NET Blog - .NET 11 RC 1
- →.NET Blog - .NET Conf 2026
- →.NET Blog - Modernize .NET in GitHub Copilot
Have a project in mind?
Let's talk about how we can help you achieve your technology goals.
Schedule a free consultation