Four colleagues with laptops and coffee discuss a plan around a meeting table
Target .NET 10. .NET 8 ends before most migrations would finish.

A .NET Framework to .NET 10 migration should target .NET 10, not .NET 8. Microsoft's support policy ends .NET 8 and .NET 9 on 10 November 2026, two weeks from today. .NET 10 is the current long-term support release, which shipped on 11 November 2025 and is supported until 14 November 2028.

This post doesn't revisit whether you have to migrate: .NET Framework 4.8 has no end date of its own, as we explain in .NET Framework 4.8 end of support. It covers the differences that matter, the order Microsoft recommends, and the technologies that need a decision before anyone estimates.

Key takeaways
  • Target .NET 10. Microsoft ends support for .NET 8 and .NET 9 on 10 November 2026; .NET 10 is supported until 14 November 2028.
  • Microsoft's own porting overview still says to consider .NET 8. Its support table says .NET 8 has two weeks left.
  • Port bottom-up: SDK-style projects and PackageReference first, then libraries, multi-targeted where needed, then apps.
  • .NET Upgrade Assistant is deprecated. Microsoft now points to the GitHub Copilot modernization agent.
  • Web Forms, WCF server, Workflow Foundation, AppDomains and Remoting need decisions, not conversions.
01

Why .NET 10 and not .NET 8?

Because .NET 8 ends before most migrations would finish.

ReleaseTypeReleasedSupport ends
.NET 10LTS11 November 202514 November 2028
.NET 9STS12 November 202410 November 2026
.NET 8LTS14 November 202310 November 2026
.NET Framework 4.8Windows component18 April 2019With the Windows version it runs on
.NET Framework 4.8.1Windows component9 August 2022With the Windows version it runs on

Checked 27 October 2026 against Microsoft's .NET support policy and .NET Framework support policy.

The policy says "LTS releases are supported for three years after the initial release." Here's the catch. Microsoft's own porting overview, last revised in September 2025, still advises: "CONSIDER targeting .NET 8, which is a long-term support (LTS) release." By Microsoft's support table, .NET 8 has two weeks left. A team that follows that line finishes one migration and owes another. Follow the support table.

02

.NET Framework vs .NET 10: what's the difference?

.NET Framework is the original, Windows-only framework. In 2019 Microsoft said 4.8 "will be the last major version of .NET Framework." Modern .NET, formerly .NET Core, is the cross-platform successor, and Microsoft releases a new major version of it every year. Older guides talk about how to migrate .NET Framework to .NET Core; the target today is .NET 10, the current release of that same line.

.NET Framework 4.8.x.NET 10
PlatformsWindows onlyWindows, Linux and macOS
SupportWith the Windows version it runs onUntil 14 November 2028
Future versions4.8 was the last major versionA new major version every year
Web frameworkASP.NET (Web Forms, MVC 5, Web API 2)ASP.NET Core
Project formatOften the older .csproj format with packages.configSDK-style projects

Microsoft's porting overview puts it plainly: ".NET Framework is a Windows-only component," while .NET "is designed to be cross-platform."

03

How does a .NET Framework to .NET 10 migration work, step by step?

Bottom-up. Microsoft's porting overview and prerequisites page give the order:

  1. Inventory dependencies. Microsoft says to examine dependencies first, because they "must target .NET, .NET Standard, or .NET Core." Each package that never shipped a modern version is a replacement or a fork. Note every use of the blockers in the table below.
  2. Retarget to .NET Framework 4.7.2 or later. Microsoft recommends this so the latest API alternatives are available "for cases where .NET Standard doesn't support existing APIs."
  3. Move to PackageReference and SDK-style projects. Convert packages.config first, then each project file. Microsoft notes the SDK-style format "also works with .NET Framework," so this step can ship before any code moves.
  4. Port libraries first, multi-targeted. For a library still used by .NET Framework projects, Microsoft suggests .NET Standard 2.0 or targeting both frameworks. For web apps, its ASP.NET guidance says to upgrade libraries in "postorder depth-first search ordering": leaf libraries first, the main application last.
  5. Port the applications. Retarget to .NET 10, add the Microsoft.Windows.Compatibility package if Windows-only APIs are missing, and test. ASP.NET apps move to ASP.NET Core, usually one route at a time.

Migrate a .NET Framework project to SDK-style

Microsoft's try-convert tool converts projects to the SDK-style format, but Microsoft says it "isn't recommended if your project has a complicated build process such as custom tasks, targets, or imports." For those, convert by hand, one project at a time, and check the build output still matches before moving on.

What about .NET Upgrade Assistant?

It's deprecated. Microsoft's Upgrade Assistant page says ".NET Upgrade Assistant is officially deprecated" and points to the GitHub Copilot modernization chat agent, "included with Visual Studio 2026 and Visual Studio 2022 17.14.16 or later." Microsoft's upgrade overview says to use Upgrade Assistant only if you can't use the agent. Either tool helps with mechanical changes. Neither tells you which parts of the application the business still depends on.

04

What can't move to .NET 10: the blockers

These are the .NET Framework technologies Microsoft lists as unavailable on modern .NET, with the alternatives it names.

TechnologyOn .NET 10What Microsoft suggests instead
AppDomainsCreating more isn't supportedSeparate processes or containers; AssemblyLoadContext to load assemblies
.NET RemotingNot supportedPipes or memory-mapped files on one machine; HTTP, gRPC or Web API across machines
Code Access SecurityNot supportedOperating system boundaries: virtualization, containers, user accounts
Security transparencyNot supportedThe same operating system boundaries
System.EnterpriseServices (COM+)Not supportedNo replacement named
Workflow FoundationNot supportedCoreWF, an open-source port Microsoft links to
WCF serverNot includedThe CoreWCF NuGet packages
ASP.NET Web FormsNot portedPages rebuilt on ASP.NET Core; Microsoft points Web Forms developers to Blazor

Checked 27 October 2026 against Microsoft's list of .NET Framework technologies unavailable on .NET 6+ and its guide Blazor for ASP.NET Web Forms developers.

WCF services and Web Forms pages are usually the items that set the size of the job. Each has its own guide: WCF in .NET Core and Web Forms end of life. Servers that pass their support dates while you migrate bring the problems in the risks of running end-of-life software, and an estate that mixes all of the above is common on any list of legacy system examples.

05

What to know before anyone estimates

The blockers table says what can't move. It doesn't say how much of each your code uses, or which parts the business still needs. The 30-day assessment is fixed in scope, at a price agreed before we start. Over 30 days we read the solution and the architecture around it, map how the projects, libraries, services and databases fit together and the order they'd have to move in, find the hidden architectural debt, and flag the security and compliance gaps, including packages with no modern version and anything on a runtime that leaves support on 10 November 2026.

The report says in plain language what is broken and what it would take to fix it. Your own team can act on it, or we can do the migration as a separate project with its own scope and price. Either way, the report stands on its own.

Pick a time to talk about the solution you'd move first.