Modernize ASP.NET Web Forms apps and move them to .NET 5 without rewriting everything

DotVVM offers a unique way
for modernization of legacy ASP.NET Web Forms applications

Benefits of using DotVVM

  • Modernize in-place. No need to build a second application and deal with single sign-on or data sharing...
  • Keep using the same business layer. Access the database the same way you did in Web Forms - no need to build APIs.
  • Choose your own tempo. DotVVM and Web Forms run in the same app - deliver new features while you modernize.
  • Refactor and improve your codebase. The Model-View-ViewModel approach will make your pages testable.

When rewrite is not the option

Some legacy applications are so complex that they are difficult or even impossible to replace. There is a ton of business logic that no one understands, and the dev team spends all their time adding new features or fixing issues. The only way to replace the application is to hire a new team and wait months or even years until they rediscover and rewrite all business logic and migrate data to the new system.

Modernize on-the-fly

DotVVM offers a unique way to modernize legacy ASP.NET applications without the need to rewrite everything or build a new team. It is possible to install DotVVM in the current application and replace ASPX pages with DotVVM equivalents one by one. During the entire process, the application still works and can be deployed - the team can deliver new features. When all artifacts that depend on ASP.NET Web Forms are replaced, you may switch the project to the latest version of .NET Core and benefit from new features on the platform.

The only thing you need to replace are ASPX pages, ASCX controls and their code behind files. All your business logic, data access, integrations and other code can stay without significant changes. You can also clean up and refactor your code base, and thanks to the MVVM nature of DotVVM, your pages will be testable.

How to start



We recommend to convert the master page first - your DotVVM master page can use the same CSS so the users won't be able to tell the difference.

Then you can continue with other pages. Choose your own tempo - the process of modernization can take weeks or months based on the size of the app.

Finally, switch to .NET 5 and replace DotVVM.Owin package with DotVVM.AspNetCore.