Migration planning update — 10 September 2026: The .NET 8 examples below describe a migration approach. Microsoft's support policy lists .NET 8 support ending on 10 November 2026. New engagements should assess a supported target such as .NET 10 LTS, including dependency and hosting compatibility, before agreeing the scope.
The Problem
You have a .NET Framework application that works but nobody wants to touch. It runs on Windows Server 2016, targets .NET Framework 4.6, and uses Web Forms or MVC 5. The original developer left years ago. The codebase has no tests, no documentation, and a deployment process that involves copying files to a server and hoping for the best.
The application may still serve its users while becoming harder to change or support. Review its supported platform, dependencies, deployment process and maintenance costs before deciding which changes are justified.
Compare a full rewrite with incremental changes using the same requirements and risk assessment. The appropriate choice depends on the codebase, integrations and constraints.
What You Get
A plan to improve maintainability, security and performance through incremental changes. Where suitable, I use the strangler fig pattern to replace components in stages. Each stage needs regression testing, an agreed cutover and a recovery plan; continued availability depends on the system and the changes involved.
Agree a supported .NET target and a suitable hosting model during assessment. Linux and container deployment depend on replacing or accommodating Windows-specific dependencies.
Common Scenarios
Common scenarios include upgrading supported .NET Framework applications, replacing Web Forms pages, improving test coverage, and separating components where the domain boundaries justify it. Review WCF, Entity Framework and other dependencies individually before deciding what to retain or replace.
For VB.NET, Classic ASP or applications mixing multiple .NET versions, start with an assessment of dependencies and business requirements. Identify the changes with the most value and check whether they can be delivered incrementally.
Managing Migration Risk
Big rewrites fail. They take too long, cost too much, and often introduce more bugs than they fix. The business requirements drift during the rewrite, so by the time the new system is ready it doesn't match what users actually need. Meanwhile, the old system still needs maintenance, so you're paying for two systems.
Instead, I modernise incrementally using the strangler fig pattern. I start with the highest-value, lowest-risk components — often the data access layer, authentication, or a frequently-changed module. Each component is extracted, rewritten in modern .NET, tested, and deployed alongside the legacy code. Over time, the new code gradually replaces the old until nothing remains of the original framework.
Agree measurable acceptance criteria for each stage and validate changes with representative users. Stopping or reversing a stage requires checking shared data, dependencies and any components already decommissioned.
How I Assess Your Codebase
Every modernisation starts with a codebase assessment covering dependencies, tests, deployment and architecture. Review current migration tooling against the target framework and your source-code handling rules. Microsoft marks .NET Upgrade Assistant as deprecated; manual review and regression testing remain necessary.
The assessment produces a prioritised roadmap: which components to modernise first, which dependencies need replacing, what the estimated effort is for each phase, and what the risk profile looks like. This gives you a clear picture of the total investment required and lets you make informed decisions about how far to go and how fast.
Technologies
.NET 8, ASP.NET Core, Entity Framework Core, Docker, Azure App Service, Windows Compatibility Pack, .NET Upgrade Assistant, API versioning, feature flags, xUnit, and Moq for testing.
Pricing
Modernisation assessments start from £1,500 and take three to five days depending on codebase size. The assessment includes a detailed report with a prioritised roadmap, effort estimates, and risk analysis. Full modernisation projects typically range from £8,000 to £30,000 depending on codebase size and complexity. I'll always give you a realistic estimate after reviewing your code — no optimistic guesses.
The assessment fee is deducted from the project cost if you proceed with the modernisation.
Related Reading
For a practical overview of the migration process, see my guide to .NET Framework to .NET 8 Migration. My article on Legacy Modernisation Without a Full Rewrite explains the strangler fig approach in more detail and covers how to make the business case for modernisation over rewriting.
Discuss Relevant Work
Ask about work relevant to your project. I can explain my role and share supporting material where I have permission. Discuss relevant work →