.NET Framework modernisation
Solve With Software modernises C# applications built on .NET Framework 2.0 to 4.8, moving them to modern .NET in stages. WinForms, WPF, class libraries and most services upgrade in place. ASP.NET Web Forms and WCF don't, and need a planned replacement, usually one page or one service at a time alongside the old one. The assessment reads the solution and tells you which of those you have, with a fixed price on each step.
Free · 1 hour · no obligation
Where .NET Framework stands
There's no switch-off date, which is why so much of it is still running. .NET Framework 4.8 ships as part of Windows and is supported for as long as the Windows version it came with, so an application on it isn't unsupported in the way a VB6 IDE is.
What's stopped is everything moving forward. New libraries target modern .NET only. Security fixes for the packages an old application depends on stop arriving. Hosting on anything but a Windows server is out. And the developers who'd take on a Framework codebase are the same developers who'd rather not. The application runs; the business around it can't move it. An application already on .NET Core, or on .NET 5 to 8, is a smaller job with its own page.
The date that does apply is the operating system's. Windows Server 2016 support ends in January 2027, and a .NET Framework application on it goes out of support with the server.
What upgrades in place, and what doesn't
This is the question the assessment answers first, because it decides the shape of the whole project.
Upgrades in place, with work but no rewrite.
- Class libraries and console applications. Usually the easiest.
- WinForms and WPF desktop applications. Both exist on modern .NET; the migration is mostly package updates and API differences, and the screens survive.
- ASP.NET MVC and Web API. Different enough to be a port rather than an upgrade, but the controllers and views mostly carry across.
- Entity Framework 6 to EF Core. A real piece of work, and worth it: the data access layer is where a lot of the technical debt sits.
Doesn't upgrade. Needs a replacement.
- ASP.NET Web Forms. There is no Web Forms on modern .NET. Each page has to be rebuilt, usually in Razor Pages or Blazor, and the sensible way is one page at a time behind a proxy, with the old site still serving the rest.
- WCF services. The server side has a community port (CoreWCF) that can be a bridge, but the long-term answer is REST or gRPC, one service at a time.
- Anything built on Windows Workflow, Remoting or other frameworks that were never carried forward.
A typical application has some of each, which is why the plan is staged rather than a single upgrade.
The staged path
- Map the solution. Every project, its target framework, its package references, and which of them are dead. The assessment produces this as a dependency map.
- Safety net first. Source control, a build that works on a current machine, a test environment, and tests around the processes that matter. Framework applications built years ago often have none of these.
- Upgrade the libraries. Move shared code to .NET Standard or modern .NET so both the old and new applications can use it. This is the stage that makes everything after it possible.
- Upgrade what upgrades. Desktop applications and services that have a direct path move across, one at a time, each tested in staging against the live database before switching.
- Replace what doesn't, alongside. Web Forms pages rebuilt one at a time behind a reverse proxy, so the old site and the new one look like one application to users. WCF services replaced one at a time with the callers re-pointed.
- Retire the old hosting when the last piece has moved.
Each stage has its own fixed price, and each ends with working software you've already paid for.
Your data
Usually SQL Server, and usually it stays exactly where it is. Modern .NET talks to the same database, so old and new applications share it throughout the migration and there's no data move at all. Where EF6 moves to EF Core, the generated queries change and are tested on a copy, then in staging against the live schema, before anything connects to live.
Can this be done gradually?
Yes, and for a mixed solution it's the only safe way. Libraries first, then whichever application carries the most risk or the most value, then the rest in order. Web Forms and WCF replacements run alongside the old code behind a proxy, so users never see a cutover. Stop after any stage and keep everything.
What it costs
The assessment is from £395 + VAT, sized on a free one-hour consultation, with an exact price before you commit. For a .NET Framework solution it maps every project and package, tests whether the thing builds, identifies what upgrades in place and what doesn't, and prices the stages as fixed numbers. What drives the price and the payment terms each have a page.
The risks of waiting
The server date, first: January 2027 for Windows Server 2016. Then the slow ones. Each year the gap between .NET Framework and modern .NET widens, more packages drop Framework support, and the upgrade gets harder rather than easier. And the developer who knows the solution is a single point of failure for as long as it's on a platform nobody new wants to learn.
How we approach it
Map it, make it safe, upgrade what upgrades, replace what doesn't, one piece at a time. Marc Allington has built on .NET Framework for years and builds on modern .NET now, so both sides of the migration are familiar. Everything we build runs on open, widely used technology, in your own accounts, with full source code and ownership transferring to you on final payment.
The technical checklist for a .NET Framework solution
| Check | Why it matters |
|---|---|
| Target framework of every project, and does the solution build on a current machine? | If it doesn't build, that's stage one. Old Framework versions (2.0, 3.5) add a step. |
| Application types: WinForms, WPF, Web Forms, MVC, Web API, WCF, Windows services, console | Sorts every project into upgrade-in-place or replace-alongside. |
| Package references, and which are unmaintained or Framework-only | The dead packages are where the surprises are; each needs a replacement or a decision. |
| Data access: EF6, raw ADO.NET, an ORM that no longer exists? | EF6 to EF Core is a project in its own right and the most valuable one. |
| Third-party controls and licences (grids, reporting, PDF) | Old commercial controls often have no modern .NET version; the licence may not even be findable. |
| Hosting: IIS on which Windows Server, and what else runs there? | Sets the date pressure and whether the target is a modern server, a container or the cloud. |
| Tests, source control, build process | Usually thin or absent. The safety net comes before any upgrade. |
| Integrations: what calls it, what it calls | Every WCF endpoint has a caller that has to be re-pointed. |
Each answer goes into the report with its stage, its consequence and a fixed price.
Questions
What people ask before they book.
Is .NET Framework unsupported?
Not yet, and not on a fixed date. Framework 4.8 is supported with the Windows version it ships on. The pressure comes from the ecosystem, which has moved to modern .NET, and from the server it runs on: Windows Server 2016 support ends in January 2027.
Our application is ASP.NET Web Forms. Can it be upgraded?
Not in place; Web Forms doesn't exist on modern .NET. It's replaced one page at a time, usually in Razor Pages or Blazor, behind a proxy so the old site keeps serving the pages that haven't moved. The data layer and the business logic underneath often can be upgraded and shared.
We have WCF services. What happens to them?
Two options. CoreWCF lets the server side run on modern .NET as a bridge, which buys time. The long-term answer is REST or gRPC, one service at a time, with each caller re-pointed as its service moves.
It's VB.NET rather than C#. Does that change anything?
Not much. VB.NET runs on modern .NET for WinForms, WPF and libraries. The web side has fewer options, so a VB.NET Web Forms application usually ends up in C# when its pages are rebuilt.
How long does a .NET Framework migration take?
It depends on how many projects there are and how many of them are Web Forms or WCF, which the assessment counts. The shape is the same for all of them: safety net and libraries first, something upgraded and running within about six weeks, then one piece at a time, each priced before you commit.
Start with a free consultation
An hour on your system, online or by phone. From there we size the assessment, from £395 + VAT, and give you an exact price before you commit.
Want the numbers first? See how pricing works.
Written by Marc Allington, founder. .