Learn how to modernize your .NET apps from the pros!

Jon Galloway

There are a lot of great reasons to update your .NET apps to the latest and greatest versions of .NET. You can take advantage of new features, get better performance, and improve security. But how do you know where to start? What are the best practices for modernizing your apps? And how do you know if you’re doing it right?

Fortunately, we’ve got a lot of great resources based on real world experience working with customers to modernize their apps. In this post, we’ll share some top resources to help you modernize your .NET apps.

Why upgrade?

If you’ve got working code and limited hours, you might be wondering why you should upgrade your .NET apps. Here are some of the top reasons:

Take advantage of huge performance improvements

Performance has been a major focus in .NET 7. We’ve made a lot of improvements to the runtime, the JIT, the GC, and in all of the application workloads. We’ve written a lot of blog posts on .NET performance improvements because it’s a core focus for us, and a key value for you. By updating your applications, you get two big performance benefits: faster execution, and better efficiency. These offer substantial customer experience improvements for your customers, and significant cost benefits for application owners.

Use new features and paradigms in your applications

Each release of .NET includes a lot of new features – new APIs, support for new standards, language features, updated platform support, and more. Newer releases include support for modern application paradigms like microservices, serverless, and modern CI/CD.

Enable new development and deployment opportunities with cross-platform support

Moving from .NET Framework to modern .NET unlocks an entire new world of cross-platform support. You can develop and run your apps on Windows, Linux, and macOS, and you can deploy them to the cloud or on-premises.

If you’re on a previous version of .NET Core, upgrading to the current release gives you additional cross-platform support, including [enhanced support for Linux and containers] as well as first tier support for additional support for Apple M1 and ARM64.

Now is a great time to upgrade, thanks to the Upgrade Assistant!

Our team supports a lot of large customers who have significant upgrade challenges – large applications with decades of code, complex build and deployment pipelines, and a lot of dependencies on third party libraries. We’ve learned a lot from these customers, and we’ve built a tool based on what we’ve learned: the .NET Upgrade Assistant. Originally we shipped the .NET Upgrade Assistant as a CLI tool; based on your feedback, we now provide a unified upgrade experience for every project type inside of Visual Studio. We’ve updated our training material and created new video content to help you get started with the Visual Studio Upgrade Assistant extension.

Get a quick start with our two hour Let’s Learn .NET video

This two hour video is a great place to get started. Olia Gavrysh and Mike Rousos walk you through the basics of modernizing your .NET apps:

  • Why upgrade?
  • Supported workloads and paths
  • The Visual Studio Upgrade Assistant extension
  • Walkthrough upgrading an ASP.NET MVC 5 (.NET Framework) app to .NET 7
  • Using the Upgrade Planner
  • Desktop and Xamarin upgrades
  • Top resources

Go hands on with our updated Learn Module

We’ve updated the Modernize ASP.NET Framework to ASP.NET Core with the .NET Upgrade Assistant module on Microsoft Learn to show the latest guidance on using the Visual Studio Upgrade Assistant extension. This module walks you through the process of upgrading the same ASP.NET MVC 5 application that we used in the Let’s Learn .NET video.

Screenshots of ASP.NET Modernization Learn Module

Deep dive video series on ASP.NET app modernization

Mike Rousos shares his experience working with customers to modernize their ASP.NET apps. In this 18 part video series, he walks you through the process of upgrading a more complex ASP.NET MVC 5 (.NET Framework) app to ASP.NET Core 7, using all the latest tools including the Visual Studio Upgrade Assistant extension, YARP based incremental migration, and the Upgrade Planner. This walkthrough shows some more advanced issues that you might encounter when upgrading your apps, such as sharing session state, static resources, and authentication over the course of an incremental migration that may span weeks or months.

  1. .NET Migration Overview
  2. Why Upgrade to .NET?
  3. Getting Started with .NET Upgrade Assistant
  4. Analyzing a Solution with .NET Upgrade Planner
  5. Upgrade Analysis with .NET Upgrade Assistant
  6. Upgrading a Project with .NET Upgrade Assistant
  7. Intro to the Upgrade Assistant Visual Studio Extension
  8. Creating a New Project with the Upgrade Assistant Visual Studio Extension
  9. Migrating an Endpoint with the Upgrade Assistant Visual Studio Extension
  10. Migrating a Class Library with System.Web Dependencies
  11. Using System.Web Adapters to Share Session State in ASP.NET Upgrade Scenarios
  12. Using System.Web Adapters to Share Authentication in ASP.NET Upgrade Scenarios
  13. Sharing Authentication Cookies in ASP.NET Upgrade Scenarios
  14. Migrating static content from ASP.NET to ASP.NET Core
  15. Deploying an Incrementally Migrated ASP.NET App to Azure App Service
  16. ASP.NET to ASP.NET Core Migration Wrap-Up
  17. Upgrading from WCF to CoreWCF
  18. Deep Dive into System.Web Adapters

Resources for Xamarin upgrades

It’s a great time to update & migrate your Xamarin.iOS and Xamarin.Android apps to the latest version of .NET so you can take advantage of the latest features of .NET 7 including C# 11 and the new project system. James Montemagno recently posted some top Tips & Tricks on Upgrading Xamarin.iOS & Xamarin.Android to .NET for iOS & Android. We’ve also posted some updated docs on how to upgrade from Xamarin to .NET.


We know that modernizing your .NET applications can be challenging, and we’ve worked hard to share our experience and best practices with you. We hope these resources help you modernize your .NET apps.


Discussion is closed. Login to edit/delete existing comments.

  • Josh Harmon 0

    It would be nice if the 18 video links went to their respective videos instead of all going to the first video.

    • Jon GallowayMicrosoft employee 1

      Oops! Fixing that now, thanks for pointing it out.

  • Sérgio Terenas 6

    Great article Jon! We’re only missing the Reportviewer and Chart controls to be compatible with the new .NET to be able to modernize our last [Winforms] app. We could replace the Chart control with something else but Reportviewer is a must for us. Any word wether Reportviewer will eventually be available on .NET6/7/8? We’ve noticed huge performance improvements on the apps we’ve already migrated. Thanks!

  • Paulo Pinto 1

    This is very much welcomed, however there are lots of products on the .NET ecosystem that aren’t upgrading, including Microsoft own products.

    When are we going to be able to write VS plugins, SharePoint Web Parts or SQL Server extensions in .NET Core?

    Finally, we have had unfortunely consulting projects where the customers faced with huge rewrites from .NET Framework into .NET Core, decided to take the opportunity to migrate away from .NET ecosytems into Java, Go, JavaScript/TypeScript, …. see for example vendors like Sitecore, which used to be the lighthouse of .NET enterprise CMS products.

    So many thanks for providing this material, as .NET Framework seems to be the decade of “Python 2” on the .NET world.

    • 定心 刘 0

      that is right, hope that MS could upgrade their own product

  • Thomas Althammer 0

    For those that would like to migrate Windows-based .NET applications to single-page web applications, Wisej.NET might be worth a look (https://wisej.com/).

  • Edul Chikhliwala 2

    Thank you for the useful information .. very nice compilation of resources.
    Can you please write a similar article for Desktop applications — please focus on Windows Forms?
    Thank you
    E D Chikhliwala

Feedback usabilla icon