With outdated NuGet packages, C# styling and architectures, keeping our .NET Framework applications up to date can be a pain. Especially when we want to make the leap from .NET Framework to .NET for that juicy performance and compatibility bump.
Luckily Microsoft provides excellent tooling for supporting your great leap into the latest version of .NET.
GitHub Copilot Modernization Agent is Microsoft's newest AI-powered agent for Visual Studio, that aims to assist developers in migrating projects to the latest versions of .NET.
✅ Pros:
Successor to the .NET Upgrade Assistant
Leverages AI-powered agent to assist in upgrading to the latest version of .NET with support that
Supports migrating from .NET Framework to modern .NET architecture
Analyzes projects and generates an assessment report with a list of migration tasks to perform.
Also provides migration recommendations, code modernization & refactors and test scaffolding post conversion
Provides a more interactive migration experience with AI-powered assistance
❌ Cons:
Requires a GitHub Copilot subscription (free option is available)
Requests through the agent counts as Copilot requests and will deduct against your premium requests monthly quota.
Copilot Coding Agent & Copilot CLI support is only available on GitHub Copilot's paid tier subscriptions (GitHub Pro and above)
The .NET Upgrade Assistant is a free and open-sourced .NET global tool that can help you incrementally upgrade your .NET Framework-based Windows applications. It's available here and free for the public on GitHub.
✅ Pros:
Purpose-built modernization tool for upgrading .NET Framework applications to the modern .NET architecture
Automates the modernization process and handles converting to projects to SDK-style
Stay agile - Receive immediate feedback on your migration progress
Guided steps - Get the recommended steps for upgrading your application and action them as you see fit
Multiple project types and languages - Receive support for project types including:
ASP.NET MVC
Windows Forms
Windows Presentation Foundation
Console
Libraries
UWP to Windows App SDK (WinUI)
Xamarin.Forms to .NET MAUI
Extensible - Customize the .NET Upgrade Assistant as you see fit
Open source - Contribute features and bug fixes to help others achieve the same goal
Upgrading to modern .NET - Provides more opportunity for the future of your application
Figure: Use the CLI version of Upgrade Assistant
❌ Cons:
Complex applications may still require some manual adjustments post conversion
Generic - The .NET Upgrade Assistant tries its best to be generic, and therefore may not be able to identify and work with your proprietary NuGet packages. Those dependencies will need to be upgraded separately, or an alternative needs to be found
Time consuming - While the .NET Upgrade Assistant does well to reduce the time and cost of upgrading your .NET applications, it will still take a significant amount of time, especially on live projects
Code modernization - The tool will not upgrade the code style or use modern C# patterns. The bulk of code will remain identical which will still look distinctly .NET Framework-like code with some of the namespaces and minor refactors
If your project is highly complex or encounters significant challenges, you may want to first take a look at the migration planning strategies highlighted in "Do you create a migration plan?".