Application & Data Migration Blog Posts | Mobilize.Net

The .NET Upgrade Assistant: A Developer's Honest Take

Written by Cheyenne Sokkappa | Aug 4, 2024 12:00:00 PM

How many of you have taken a look at the .NET Upgrade Assistant and wondered if it’s all it’s cracked up to be?

Good news, here at GAP, we get paid to put .NET technologies through their paces so that you don’t have to. Like any tool, the .NET Upgrade Assistant has its quirks. So, let's jump in and have a real talk about the good, the bad, and the ugly of this upgrade helper.

How Do I Use the .NET Upgrade Assistant

The .NET Upgrade Assistant is for developers who want to upgrade their projects from a previous version of .NET to a newer version (such as .NET 6 to .NET 8). The Upgrade Assistant supports C# and Visual Basic languages as well as project types ranging from ASP.NET to Winforms to MAUI. You just have to download the extension in Visual Studio or as a .NET command line tool. 

There are a few different upgrade types that you can complete:

  1. In-Place Project: This upgrades your project and completely rewrites over the project without a copy in place. We DO NOT recommend this path since there may be issues with the code in the upgraded version.

  2. Side-By-Side Project: This creates a copy of your project and upgrades the copy so that you have both the original and updated versions. This is a good option for less complex projects.

  3. Side-By-Side Incremental: This is the ideal path for more complex projects. This puts your .NET projects next to the existing framework project, routes endpoints from the existing project, with other calls being sent to the .NET Framework application.

Check out this overview to get started on your upgrade.

The Good: Where the .NET Upgrade Assistant Shines

  • Guided experience: Seriously, this thing holds your hand. It walks you through the upgrade process step-by-step. For projects that aren't massive, it can feel almost magical.

  • Smart analysis: The Upgrade Assistant does some pretty decent analysis of your codebase. It'll flag potential issues, like outdated dependencies or API changes you need to watch out for.

  • Incremental upgrades: This is a big win. You don't have to jump straight to the latest .NET version. The tool lets you take smaller steps, which can make the whole process less intimidating.

The Bad: Where Things Get Tricky

  • Complex projects: If you're dealing with a massive, sprawling codebase, the Upgrade Assistant will start to wheeze a bit. It misses issues or suggests changes that often don't make sense.

  • Manual work: Don't expect a completely hands-off experience. You'll still need to roll up your sleeves and fix things manually. Sometimes the suggested fixes aren't perfect.

  • Limited scope: It mainly focuses on the code-level stuff. It won't help you with broader architectural decisions or refactorings you might need to do for newer .NET features.

  • Learning curve: While it's designed to be helpful, there's still a learning curve, especially when it comes to customizing the process.

The Ugly: The Frustrations We All Face

  • Unexpected errors: Let's be real, sometimes you'll hit cryptic error messages or the tool will just plain crash. Not fun, but it happens.

  • False positives: It's not perfect at spotting every potential issue. Sometimes it'll flag something as a problem when it really isn't.

  • Limited community support: While the tool has been out in production for several years, the community resources and knowledge base aren't as extensive as we'd like.

The Verdict: Is the .NET Upgrade Assistant Worth It

Bottom line: the .NET Upgrade Assistant is a valuable tool, especially for smaller to medium-sized projects. It'll save you time and headaches (and some heartache too) compared to a completely manual upgrade. But don't expect miracles. You'll still need your technical skills, and you will definitely run into some bumps along the way.

My Advice: Give it a shot on a non-critical project first. Get a feel for how it works and where its limitations are. Then, you can decide if it's the right fit for your bigger, more important upgrades.