Skip to content
MERVENORBook a triage call

03 · ModerniseRenascia · .NET Framework

Move your old .NET application to modern .NET, one step at a time

Thousands of business applications still run on .NET Framework 4.x: ASP.NET MVC and Web API back ends, WebForms front ends, WCF services, Windows-only hosting. They work, but they cost more to host, are harder to hire for, and cannot use the current ecosystem. We migrate them to .NET 10, the current long-term-support release of modern .NET (the platform that began as .NET Core), in slices, with tests proving behaviour is unchanged, at a fixed price set after a five-day Perlustra audit.

Planning a move to .NET 8?

Microsoft set 10 November 2026 as the end of support for .NET 8 and .NET 9, and recommends .NET 10, supported until November 2028. New migrations target .NET 10; applications already on .NET 8 have a much smaller step to take. (Source: Microsoft .NET Blog, 29 June 2026.)

Traffic switch (proxy)old: .NET Frameworknew: .NET 10/orders/invoices/reports/authready to switch off
Target
.NET 10 (LTS, supported to November 2028)
Duration
Two to six weeks
Price
Fixed, set by the audit
Audit first
Fixed fee, 50% credited

Part of the Renascia sprint. Multi-service estates are phased, with a shippable result after each phase.

01What moves

What moves, and how

ComponentStrategy
ASP.NET MVC / Web APIPort controllers, routing, filters and DI to ASP.NET Core; adapt middleware; keep URL contracts stable.
Entity Framework 6Move to EF Core with query-by-query verification; keep the schema; migration scripts tested on a copy of production data.
WebFormsNot portable. Options stated honestly: strangler replacement with Razor Pages or a SPA, screen by screen; or keep it on Framework behind a reverse proxy while everything else moves.
WCFReplace with ASP.NET Core Web API or gRPC; CoreWCF where the contract must stay.
System.Web dependencies (Session, HttpContext, Membership)Replace with ASP.NET Core equivalents; the Identity migration is planned explicitly.
Windows-only libraries, COM, registryInventoried in the audit; each gets a replace, isolate or keep decision.
Hosting (IIS / Windows Server)Linux containers on your cloud of choice, or stay on Windows if that is the right answer; cost comparison included.

02Method

The five-step method

  1. Inventory and assessment

    The audit runs Microsoft's upgrade analysis (the GitHub Copilot modernization agent, which replaced the deprecated .NET Upgrade Assistant) and API compatibility checks, lists every blocker, and estimates the effort for each project in the codebase.

  2. Share the core first

    Class libraries move to .NET Standard 2.0 or multi-target .NET Framework and .NET 10 first, so both the old and new hosts can share them.

  3. Move the web layer in slices

    A new ASP.NET Core host runs alongside the old one; routes migrate in groups behind a reverse proxy (YARP), each with its own way back.

  4. Data and identity

    EF Core and Identity migrations with parallel-run verification.

  5. Switch off the old host

    The Framework host is turned off only when every route has moved and monitoring has been quiet for an agreed period.

03Challenges

Challenges we plan for, so they do not become surprises

  • Third-party packages with no modern .NET version
  • Configuration moved from web.config to appsettings and environment variables
  • Synchronous code paths that need async to perform on Kestrel
  • Session state and caching semantics
  • Reporting and PDF libraries tied to Windows
  • Scheduled tasks and Windows Services becoming hosted services
  • Authentication migrations (Forms Auth, Membership)
  • Build servers and deployment scripts

04What you get

What you get

A working application on a supported runtime, a test suite around the migrated paths, container images or deployment scripts, updated documentation, a decommission checklist for the old host, and a hosting cost comparison before and after.

05AI-assisted

AI-assisted migration, honestly described

We use AI coding tools and the Microsoft upgrade tooling for the mechanical parts of .NET modernization (modernisation): API replacements, namespace changes, test scaffolding.

The decisions — what to port, what to replace, what to leave — are made by a senior engineer who has read your code. Fixed prices mean you get the speed without paying for the hours.

06Questions

Frequently asked questions

Not answered here? Ask on the triage call.

What are the steps to migrate .NET Framework 4.8 to .NET 8 or .NET 10?

The same steps apply to both, and today the target should be .NET 10: inventory and assessment, multi-target the shared libraries, migrate the web layer in slices behind a proxy, migrate data access and identity, decommission the old host. The five-step method above is the full version.

What are the biggest .NET Framework to .NET Core migration challenges?

WebForms and WCF (no direct port), System.Web dependencies, Windows-only libraries, and configuration. All four are inventoried in the audit before a price is quoted.

Is there a tool that does the migration automatically?

Microsoft's GitHub Copilot modernization agent (which replaced the deprecated .NET Upgrade Assistant) and the compatibility analysers handle the mechanical parts and report blockers. They do not migrate WebForms, redesign authentication, or decide hosting. We use them; they do not replace the work.

Should we go to .NET 8 or .NET 10?

.NET 10. Microsoft set 10 November 2026 as the end of support for .NET 8 and .NET 9, and recommends .NET 10, a long-term-support release supported until November 2028. Libraries built for .NET 8 generally run on .NET 10; the audit checks each one.

We are already on .NET 8. Do we need to do anything?

Yes: plan the move to .NET 10, because .NET 8 receives no security fixes after 10 November 2026. It is usually a much smaller step than leaving .NET Framework; the audit sizes it and fixes the price.

Can we keep running on Windows Server?

Yes. Moving to Linux containers usually cuts hosting cost, but it is a separate decision and the report quantifies it.

How long does it take?

Two to six weeks for a typical single application; estates with several services are phased, with a shippable result after each phase.

07Start

Tell us about the application

Thirty minutes, no slides, no sales script. You leave with a view on what to check first.

Target
.NET 10 (LTS)
Duration
Two to six weeks
Price
Fixed, set by the audit
Audit first
Fixed fee, 50% credited