Quick Answer
.NET 8 and .NET 9 both reach end of support on 10 November 2026. After that date, Microsoft stops issuing security patches, bug fixes, and technical support for either version. Applications will keep running, but every unpatched vulnerability discovered from that point on stays unpatched — creating real security, compliance, and insurance exposure. The recommended path is to migrate to .NET 10, a Long Term Support (LTS) release backed by Microsoft until November 2028. For most line-of-business applications, the technical upgrade is straightforward; the risk is running out of time to test and deploy it properly.
Why Is November 2026 a Hard Deadline?
.NET 8 launched in November 2023 as an LTS release, which carries a standard 36-month support window — placing its end-of-support date at 10 November 2026. .NET 9, normally a Standard Term Support release with a shorter lifecycle, had its support window extended to 24 months, which happens to land its end date on the exact same day.
That means two consecutive .NET versions expire simultaneously. If your business built anything in the last two to three years, there’s a strong chance it’s sitting on .NET 8 or .NET 9 right now — and both are on the clock.
Worth noting: 10 November 2026 is also a scheduled Microsoft Patch Tuesday, so both versions may receive one final critical update that day before support closes for good.
What Actually Happens After Support Ends?
- Nothing switches off. That’s exactly what makes this deadline dangerous — there’s no dramatic failure event to force action, just a quiet accumulation of risk:
- No more security patches. Any vulnerability discovered in the .NET 8 or .NET 9 runtime after November 2026 remains permanently unpatched.
- No Microsoft technical support. If something breaks in production, Microsoft support channels won’t help with issues specific to an unsupported runtime.
- Third-party packages move on. NuGet package maintainers increasingly test only against supported targets, so dependency updates start drying up.
- Compliance and audit exposure. Running unsupported software is a common trigger for failed security audits, cyber-insurance disputes, and regulatory scrutiny — particularly relevant for businesses in finance, health, and government-adjacent sectors here in Australia.
- Attackers know the calendar too. Legacy, unsupported frameworks are a known target because defenders can no longer deploy official fixes.
Why Upgrade to .NET 10 Specifically?
.NET 10 isn’t just “the next version” — it’s the release Microsoft wants everyone to land on. It’s an LTS release supported through November 2028, giving you a genuine multi-year runway rather than another short-lived stepping stone.
Beyond the support window, .NET 10 brings real, practical improvements:
- Built-in AI integration via the new Microsoft Agent Framework, which unifies Semantic Kernel and AutoGen so applications can incorporate multi-agent AI workflows without bolting together separate tools.
- C# 14 language features, including extension members, the field keyword for cleaner property backing, and file-based apps for lightweight scripting scenarios.
- Native AOT improvements, producing dramatically smaller compiled binaries and removing JIT compilation overhead at startup — valuable for containerised and cloud-native workloads where cold-start time and image size matter.
- Performance gains across the runtime, including AVX 10.2 intrinsics support for numeric, AI, and graphics workloads.
- EF Core 10 enhancements, including named query filters and improved Azure Cosmos DB support.
- Tooling upgrades in Visual Studio 2026, with significantly faster load times and fewer large-solution hangs.
In short: this is a rare case where the “forced” upgrade and the “worthwhile” upgrade are the same upgrade.
Who Is Affected?
If any of the following apply to your business, this deadline is relevant to you:
- You run ASP.NET Core applications, APIs, or background services on .NET 8 or .NET 9
- Your applications are hosted on Azure App Service, Azure Functions, or in containers
- You use PowerShell 7.4 Function Apps (also reaching end of support on the same day)
- Your infrastructure stack includes other components with nearby lifecycle dates — for example, Extended Security Updates for Windows Server 2012/2012 R2 close on 13 October 2026, adding another layer of urgency if your stack hasn’t been modernised in a while
Don’t overlook internal tools and background services. Audits often focus on customer-facing applications and miss the internal reporting tool or scheduled job that’s just as exposed.
The Migration Path: What It Actually Involves
For most well-maintained ASP.NET Core applications, upgrading to .NET 10 is a manageable, well-understood process rather than a rebuild:
- Audit every application currently targeting net8.0 or net9.0 — including internal tools, APIs, and scheduled jobs, not just customer-facing systems.
- Classify by business criticality, factoring in data sensitivity, regulatory exposure, and how disruptive downtime would be.
- Update the target framework in each project file from net8.0 (or net9.0) to net10.0.
- Upgrade NuGet package dependencies to versions that support .NET 10 — this is usually where the real work hides, especially for older or less-maintained packages.
- Move to a supported SDK and build environment, using the .NET Upgrade Assistant to handle much of the mechanical work automatically.
- Run your full test suite and validate behaviour, particularly around EF Core, authentication, and any AOT-compiled components.
- Update your hosting environment — for Azure App Service, this means setting the runtime stack to .NET 10 (LTS), available on both Windows and Linux.
- Re-test in staging before production cutover, allowing time to catch issues you didn’t anticipate.
A supported application requires all three pieces to be current at once: a supported SDK, a supported target framework, and supported package dependencies. Getting two out of three still leaves you exposed.
How Long Should You Budget?
Timelines vary with application complexity, but a few principles hold across the board:
- Simple, well-maintained ASP.NET Core apps with modern dependencies can often be migrated and tested within days to a couple of weeks.
- Larger applications with heavy third-party dependencies, custom middleware, or older architectural patterns should budget several weeks to a few months, factoring in staging validation.
- Portfolios of multiple applications benefit from the prioritisation step above — migrate business-critical, internet-facing systems first, and sequence lower-risk internal tools afterward.
Given testing and validation take real time, waiting until October 2026 to start is a genuine risk. Businesses that begin the audit and planning phase now have far more room to sequence the work sensibly instead of rushing it.
Should You Migrate In-House or With a Partner?
If you have an in-house .NET team with capacity, the technical steps above are entirely achievable internally — Microsoft’s tooling is designed to make the framework-version change itself relatively mechanical.
Where businesses most often need outside help is:
- Legacy dependency untangling, when packages haven’t been updated in years
- Parallel workloads, when the team responsible for migration also owns feature delivery and can’t context-switch cleanly
- Multi-application portfolios, where prioritisation and sequencing benefit from an outside audit
- Azure environment changes, where hosting configuration and runtime stack updates need coordinating alongside the code migration
An experienced .NET development partner can run the application audit, handle the package and framework upgrade work, and validate the result in staging — letting your internal team stay focused on the roadmap rather than infrastructure maintenance.
Frequently Asked Questions
When exactly does .NET 8 and .NET 9 support end? Both reach end of support on 10 November 2026.
Will my application stop working after November 2026? No. Existing applications will continue to run. The risk is that security vulnerabilities discovered after that date will no longer be patched by Microsoft.
How long is .NET 10 supported for? .NET 10 is a Long Term Support (LTS) release supported through November 2028.
Is upgrading from .NET 8 or .NET 9 to .NET 10 a major rewrite? For most standard ASP.NET Core applications, no. It typically involves changing the target framework, updating NuGet packages to supported versions, and re-testing — not a ground-up rebuild.
What if I can’t finish migrating before the deadline? Prioritise your most business-critical and internet-facing applications first. For anything that genuinely can’t be migrated in time, isolate it, restrict its exposure, and treat it as a high-priority item on the immediate post-deadline roadmap.
Does this affect applications hosted in Azure specifically? Yes. Azure App Service and Azure Functions both require the runtime stack to be updated to a supported version, alongside the application-level framework change.
If your business is running production applications on .NET 8 or .NET 9, the time to start planning is now — not in October 2026. Get in touch with our team for an application readiness review and a clear migration roadmap tailored to your environment.
