Tons of business applications have been written in .NET and its most famous project type – the ASP.NET Web Forms, which some 20 years ago helped organizations migrate their legacy Windows Forms applications to the web and thus open to global markets.
.NET Core (and its latest version, .NET 5) is the exciting new future for .NET and, along with its announcement, Microsoft made it clear that ASP.NET Web Forms will not be ported to .NET Core.
While your ASP.NET Web Forms applications will remain functional as long as you have the talent to support them, just like Classic ASP applications, they will become increasingly brittle and outdated over the years.
.NET 5 is the new step forward with .NET Core, the platform where all future Microsoft investments in .NET will converge. When compared to .NET Framework, .NET Core has a lot to offer that resonates with modern application development principles:
With .NET 5+, Microsoft builds on its promise to make .NET more universal and offer broader capabilities.
While Microsoft confirmed they would be supporting existing ASP.NET Web Forms applications, for the time being, there are many good reasons for you to consider migrating to the latest .NET project.
Key concerns to consider:
No new features and updates for ASP.NET Web Forms; simpler development models and better syntax in newer C# versions (available with .NET Core).
.NET Core features a lot of performance improvements that are off the limit for your project.
ASP.NET Web Forms applications are more susceptible to security risks and vulnerabilities. Even internal applications can be compromised.
.NET Core offers better overall application stability.
The scarcity of ASP.NET Web Forms talent makes software changes expensive and risky, opening the door to introducing new bugs that are hard to trace and fix.
When the application has been around for a decade or more (which would often be the case), and there is a hefty backlog full of new feature requests and UI to be developed, the task of rewriting the entire application becomes not just time-consuming, but outright impossible.
Most ASP.NET applications support business-critical functions in the organization, facilitating daily tasks and workflows, which poses a substantial challenge for the development team. They will need to rewrite the application while keeping it operational. Building a new version in parallel with maintaining the old one proves very expensive.
Continuous, iterative modernization can enable the development team to gradually migrate from ASP.NET Web Forms to a modern stack like MVC or .NET Core. With this approach, the engineering team gradually creates a new system around the edges of the old, letting it grow slowly until all system capabilities have been rewritten and the old system is now obsolete. Software engineers often call this the strangler fig application. By replacing Web Forms with a modern UI framework, while keeping the business logic intact, the development team can incrementally switch to .NET Core, keeping the lights on the Web Forms application while modernizing their system.
Web development is moving fast. Web applications need to be lightweight and performant to deliver business value. Further, they need to be secure, responsive, and operational across browsers, platforms, and devices. You might want to focus on planning for the not-so-distant future, weighing the pros and cons of staying with obsolete technology.
Choosing to modernize your application using MVC, Razor or Blazor would require rewriting the entire application, retraining your team while fixing UI glitches, and handling customer dissatisfaction that inevitably stems from such updates. If your organization does not have the resources to dedicate to manage all this, a partner may be the way to go.
At Resolute Software, we take the time to assess your application‘s architecture, interdependencies with other applications and databases, separation of the business logic from the UI before proposing a plan of action.
A quick rundown of the ASP.NET Web Forms application modernization steps we take: