.NET Modernization

.NET Framework to Modern .NET Migration

PixoBots migrates .NET Framework applications - ASP.NET WebForms and MVC, WCF services, Windows services and class libraries - to the latest stable .NET release (currently .NET 10, a long-term-support version), incrementally and with the application live throughout. Our dedicated .NET developers use AI tools for the repetitive upgrade work - API replacements, project-file conversion and regression tests - and review every change, so you reach modern .NET sooner without a risky rewrite.

Talk to an Expert

Our .NET migration capabilities

  • check_circle Portability & dependency assessment
  • check_circle ASP.NET MVC to ASP.NET Core MVC
  • check_circle WebForms to Blazor or Razor Pages
  • check_circle WCF to gRPC, REST or CoreWCF
  • check_circle Entity Framework 6 to EF Core
  • check_circle Windows services to worker services
  • check_circle Linux, Docker & cloud hosting
  • check_circle Automated regression testing

What we deliver

Assess portability

We scan every project and NuGet dependency, flag Windows-only and unsupported APIs, and use AI tools to write characterisation tests that pin current behaviour before anything moves.

Libraries first

Shared libraries move to .NET Standard or multi-target first, so old and new apps can run on the same code during the transition.

Side-by-side cut-over

Routes or services move one at a time behind a proxy - the strangler-fig pattern - so there is never a big-bang release.

Ship on the latest .NET

Containerized, CI/CD-built and monitored on Linux or Windows, in your cloud or data centre.

Explore related services

Why move off .NET Framework

.NET Framework 4.8.x still receives security fixes as part of Windows, but it gets no new features, runs only on Windows and is not where Microsoft's performance work happens. Modern .NET runs on Linux and in containers, is markedly faster for typical web workloads, and is what new libraries and Azure services target.

Staying put also has a hiring cost: fewer engineers want to work on WebForms and WCF every year, and the ones who do are expensive.

What can't be migrated as-is

Some .NET Framework technologies have no direct equivalent: ASP.NET WebForms (moved to Blazor or Razor Pages), WCF server hosting (moved to gRPC or REST, or kept with the community CoreWCF project), and AppDomains and .NET Remoting (redesigned). We identify these in the assessment so they are planned, not discovered mid-project.

Most business logic, data access and class libraries port with modest change - which is why a staged migration usually costs far less than a rewrite.

Which .NET version to target

We always target the latest stable .NET release - currently .NET 10, a long-term-support version. If you are already on an older release of modern .NET that is out of support or close to it, the same playbook applies - and the jump is much smaller than from .NET Framework.

The other APIs that need a plan

Beyond WebForms and WCF, the assessment flags the quieter breaking changes. System.Web and HttpContext.Current do not exist in ASP.NET Core, so code that reaches for the current request from deep inside business logic has to receive it explicitly. Global.asax, HTTP modules and handlers become middleware; web.config settings and ConfigurationManager calls move to appsettings files, environment variables and the options pattern.

Other common items are BinaryFormatter, which is disabled in modern .NET; System.Drawing, which is Windows-only; Windows registry, COM and Windows identity calls that will not work in a Linux container; and Entity Framework 6 queries that behave differently in EF Core, where lazy loading is off unless you opt in.

Incremental migration with YARP

For web applications we follow Microsoft's documented incremental approach. A new ASP.NET Core application is placed in front of the existing one, and YARP, Microsoft's reverse proxy library, forwards every route that has not been migrated yet to the old .NET Framework site. Users see one application while pages and endpoints move across one at a time.

The System.Web adapters let both applications share session state and sign-in during the transition, so a user moving between old and new pages stays logged in. When the proxy is no longer forwarding any traffic, the old application is switched off.

How we test a migration

Before code moves, we write characterisation tests that record what the application does today, including the odd behaviour users rely on. During the migration the same HTTP-level tests run against the old and new versions and compare responses, contract tests protect clients of replaced WCF services, and performance baselines catch regressions. Our developers use AI tools to draft these tests in bulk, then review and correct each one against the real behaviour.

From IIS to containers and Linux

Modern .NET runs on its own Kestrel web server, so IIS becomes optional: it can still host the app, or the app can run in Linux containers behind a load balancer or ingress. Moving off Windows changes a few habits - file paths become case-sensitive, logs go to standard output for the platform to collect, configuration and secrets come from environment variables or a vault, and data protection keys must be stored centrally so sign-ins survive restarts and scale-out.

Windows authentication is usually replaced with OpenID Connect against Microsoft Entra ID or your identity provider. We add health checks and a CI/CD pipeline that builds the container image, so each release is repeatable and easy to roll back.

Pixel & Bots

Pixel-perfect software, delivered at AI speed

PixoBots stands for Pixel & Bots. Our Bots are dedicated developers who work with AI tools: AI takes the repetitive work, a developer reviews every line, and the result is pixel-perfect.

Pixel

Polished UI and clean, tested code - detail is part of the job, not an afterthought.

Bots

Dedicated developers who join your team and use AI for boilerplate, tests and documentation.

Savings

AI-assisted delivery can save more than 50% of development cost compared with traditional development.

Plan your .NET migration

Tell us about your goals and we'll get back to you within 24 hours.

Frequently asked questions

How long does a .NET Framework to .NET migration take? expand_more
A small application can move in weeks; a large solution with WebForms or WCF typically takes a few months. Because we migrate in stages, each stage is releasable on its own and the application stays live throughout.
Can we migrate WebForms to modern .NET? expand_more
Not directly - WebForms does not exist in modern .NET. We move WebForms screens to Blazor or Razor Pages page by page, reusing your business logic, so the UI is rebuilt but the rules behind it are not.
What happens to our WCF services? expand_more
We move them to gRPC or REST APIs, or - where clients can't change - host them on CoreWCF, the community port of WCF for modern .NET.
Will the migrated app run on Linux? expand_more
Yes. Modern .NET is cross-platform, so the application can run in Linux containers, which usually lowers hosting costs. Windows hosting remains an option if you need it.
We're on an older version of modern .NET - do we need to upgrade? expand_more
If your version is out of support or close to it, yes - unsupported versions stop receiving security patches. Moving to the latest stable .NET release (currently .NET 10) is usually a small, low-risk project, and we can include it in the same engagement. Microsoft publishes the support dates for every version in its .NET support policy.
Do we have to switch from IIS to Linux containers? expand_more
No. ASP.NET Core apps can still be hosted on IIS on Windows Server, which is often the simplest first step. Linux containers become worthwhile when you want cheaper hosting, consistent environments and automated scaling, and we usually treat that as a separate, later stage once the code is running on modern .NET.