Migrating from .NET Framework to .NET Core or .NET 5 is hard. Even for technologies that have been officially added to .NET 5, like WPF and Winforms, the migration is not as simple as changing the target framework. Old .NET Framework features not brought in, or dependencies like NuGet packages and other libraries can prevent an application from working as intended.
For Visual ReCode, we were aware that these struggles existed for people using our product to convert projects from WCF to gRPC on .NET Core as well. While Visual ReCode made moving a WCF application onto .NET Core possible, it didn’t make it as easy as it could be.
To aid in the migration process, we have added a feature called “Guided Project Updates” as part of the Visual ReCode 2.0 update. This provides a well-optimized and easy to follow upgrade-path for teams moving from WCF to gRPC.
This article goes over some of the specific functions of the “Guided Project Updates” feature and its benefits during the update process.
What does the “Guided Project Upgrades” feature actually do?
Migrate from .NET Framework to .NET 5, .NET Standard, and .NET Core
The first part of the process is picking a target framework. When you upgrade a project, you can choose between multiple target frameworks to target.
Initially, we’d recommend choosing .NET Standard 2.0 and seeing if that works. If your .NET application targets 4.7.2 or later, the .NET Standard 2.0 library should work with it. If you’re still targeting 4.7.1 or earlier, make sure to select that framework as well.
If .NET Standard 2.0 doesn’t compile, it might be worth checking .NET Standard 2.1 before diving in and working on your code.
For the Visual ReCode 2.0 update, we added .NET 5 as a target framework for WCF to gRPC conversion. But “Guided Project Upgrades” will work for other targets as well.
Go through the Upgrade
The “Guided Project Upgrades” tool takes the projects in your WCF solution and puts them into 4 categories:
- Ready to Upgrade: These are your solutions that are ready to upgrade right now.
- Dependencies Require Upgrade: These are your solutions that require other parts of your application to be upgraded before they can be upgraded themselves.
- Upgraded: These are the solutions that you have already upgraded. They are moved into this category automatically as you go through the upgrade.
- Windows Desktop Projects: This is where your WPF, WinForms, etc., projects are located. Those need to be upgraded outside of the “Guided Project Upgrade” tool.
Automatic NuGet Package Update
A common pain point among .NET Framework upgrades is keeping track of the NuGet packages for your project. Not all of them may be compatible with .NET Core or .NET 5, and it can be a pain to manually look over each package, check compatibility, and try to find the right update.
The “Guided Project Upgrades” tool takes most of the pain out of this process. Visual ReCode will do the following:
- Check for Compatibility: No need to comb through your project. Let Visual Recode do that for you. It will automatically check the compatibility of each NuGet Package as you go through the upgrade process.
- Find Upgraded Versions: If a NuGet package is not compatible with the framework you are targeting, Visual ReCode will look for an upgraded version for you. If a compatible version exists, Visual ReCode will add it to the project for you. Rarely, an upgrade may have breaking changes that could affect your code. Mostly this happens when you are making a big jump across versions. Most of the time, it has not been an issue, but it is worth noting.
- Inform You of Incompatible Packages: When Visual ReCode can’t find a replacement for an incompatible package, you will receive a notification. This way, you can make plans to look for an alternative package or possibly send a pull request to the package’s repository.
For most developers, this process will save them a lot of time. Even if Visual ReCode can’t find a replacement for every package in your project, it will still find the problematic packages for you and save you time manually checking every package yourself. So even in non-perfect scenarios, you will be at least saving yourself some time and effort.
Guided Project Upgrades Keep You on the Right Path
The “Guided Project Upgrades” tool overall makes sure your upgrade goes as smoothly as possible. For some projects, that’s going to be as simple as clicking the upgrade button at each step. Other projects may run into more trouble with incompatible dependencies or NuGet packages that will require a manual fix. But at least for those teams, these problems will be clearly pointed out instead of requiring a slow discovery over a long migration process.
“Guided Project Upgrades” is a great new feature we are happy is a part of Visual ReCode, but it’s not the only feature worth investigating. Follow the button below if you would like to learn more about transitioning from .NET Framework with WCF to a new .NET with gRPC using Visual ReCode.