Plenty of profitable software still runs on .NET Framework 4.x. It works, until you need to hire for it, deploy it somewhere modern, or use a library that dropped support years ago. The instinct is often to rewrite from scratch. We almost always recommend against it.
Here is how we migrated a file-sharing SaaS (7 projects, about 800 C# files) from .NET Framework 4.6.2 to .NET 10.
Start with an honest inventory
Before touching code, we listed everything that would not survive the move:
- System.Web, which ASP.NET Core doesn't have
- WebForms: a 52-page admin portal
- EF6 with an EDMX model
- Telerik WebForms controls and Ionic.Zip
- Version conflicts between the AWS SDK, JWT and Twilio packages
Each item got a replacement plan and an estimate. That list became the migration roadmap.
Phase 1: SDK-style projects
Converting project files to the SDK style is mechanical but unlocks everything else. We kept the target framework unchanged at first, so the solution still built and behaved exactly as before.
Phase 2: isolate the legacy
Code that depended on System.Web or WebForms was moved behind interfaces or into clearly marked legacy folders. Business logic was separated from the framework it happened to live in.
Phase 3: convert batch by batch
- The API first. Web API 5.2 controllers became ASP.NET Core controllers with JWT Bearer auth, CORS and a global exception handler. 19 controllers, each tested against the old behavior.
- Data access. EF6 EDMX moved to EF Core, and System.Data.SqlClient to Microsoft.Data.SqlClient.
- The admin portal. WebForms can't be ported, so the 52 pages were rebuilt as ASP.NET Core MVC: about 50 controllers and 57 Razor views, keeping the workflows admins already knew.
The rule throughout: the solution builds at every step. No long-lived branch that "will compile eventually."
Phase 4: automate deployment
Finally, a script that builds, publishes and deploys to IIS on AWS EC2. Modernization isn't finished until releasing is boring.
Should you migrate?
If your .NET Framework app is still earning money but slowing you down, a phased migration is usually cheaper and far less risky than a rewrite. We're happy to look at your solution and give you an honest assessment.