Dotnet Core has been released for a very long time now and everyone is getting on the cutting edge of the SDK technology when it is realeased. However, there has been some assistance missing in helping, especially .Net Framework projects, upgrade to the next version. Now 2021 they have brought the tooling out! and by they I mean Microsoft.
The funny part of this is although Microsoft built Dotnet Core, with the communities help, it was AWS that came to the recuse of developers first. Late 2020 AWS developed a porting assistance tool for moving from .Net Framework to Dotnet Core.
This tool brings a nice UI to download and review the actions required to upgrade, but being more developer I prefer the command line. The report is well detailed and does a good job at bringing the old technology to the latest version. I think it is great that this was around to help companies get onto Dotnet Core. However, it doesn’t assist with a change in Dotnet Core SDK versioning, which although it is simple, having something that will make sure your app is properly upgraded without any all nighter is nice to have.
There is also a document on migration in Dotnet Core from Microsoft, that goes through each of the steps required to action the upgrade. I did follow this guide and it was very simple, but then it doesn’t cater for more complex and large solutions. It is also specifically for a Dotnet Core migration from 3.1 to 5, which some developers might be coming from other versions. View the documentation here.
Finally we come to the new toy on the block, which is the Microsoft Upgrade Assistant. The reasons why this is such a good tool, is it covers where the other two methods fail. It is made to run with the Dotnet Core SDK, so it is something you will be or will get to be familiar with. It can assist in upgrading .Net Framework and Dotnet Core projects or solutions. This is very well automated to do the work for you with a simple numbering system to choose what steps to run, skip or explain.
The guide to installation and use is very simple to follow as it is a few dotnet installations, then run the command.
A handy part is it offers the ability to backup your existing project, so you will not lose your work, but you should also be using a source control like Git to manage you project anyway so you will see the changes made.
If you get into any trouble with the installation or the upgrade, like all of Microsoft projects, it is open source on GitHub. I found one or two issue installing and found the help I needed extremely fast.
The reason why these tools and methods are so important now, is the upgrading cadence is speeding up. Before you would have a set version with some patches, but you would not look to upgrade as often. Now with Dotnet Core and the general speed of development, the changes have a lot of benefits with little impact to upgrade, that is if you keep up with the latest. Already they have release .Net 5 production ready and releasing .Net 6 preview so you can see the speed in change.
The upgrades are getting as simple as updating a Nuget package, so why would you not. You will of course still need to test and validate the upgrade, plus you are restricted by other resources you use being compatible like external Nuget Packages.