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.
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.
- .NET Migration Overview
- Why Upgrade to .NET?
- Getting Started with .NET Upgrade Assistant
- Analyzing a Solution with .NET Upgrade Planner
- Upgrade Analysis with .NET Upgrade Assistant
- Upgrading a Project with .NET Upgrade Assistant
- Intro to the Upgrade Assistant Visual Studio Extension
- Creating a New Project with the Upgrade Assistant Visual Studio Extension
- Migrating an Endpoint with the Upgrade Assistant Visual Studio Extension
- Migrating a Class Library with System.Web Dependencies
- Using System.Web Adapters to Share Session State in ASP.NET Upgrade Scenarios
- Using System.Web Adapters to Share Authentication in ASP.NET Upgrade Scenarios
- Sharing Authentication Cookies in ASP.NET Upgrade Scenarios
- Migrating static content from ASP.NET to ASP.NET Core
- Deploying an Incrementally Migrated ASP.NET App to Azure App Service
- ASP.NET to ASP.NET Core Migration Wrap-Up
- Upgrading from WCF to CoreWCF
- 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.
Summary
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.
Jon,
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
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/).
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,...
that is right, hope that MS could upgrade their own product
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!
It would be nice if the 18 video links went to their respective videos instead of all going to the first video.
Oops! Fixing that now, thanks for pointing it out.