Tip
Prefer the web experience? Open this page on the course website for the best reading experience and navigation.
Use GitHub Copilot in Visual Studio to upgrade a legacy .NET app. Then plan its move to Azure, Microsoft's cloud platform.
Throughout this course we'll use a sample app named BookCatalog that lets a catalog editor add, inspect, edit, and remove books. Its main list hides inactive books and sorts active books by title.
You'll use the GitHub Copilot modernization for .NET tooling to upgrade the application from .NET Framework 4.8 to .NET 10. You'll then assess and plan its move to Azure.
.NET Framework is the older, Windows-only platform. Modern .NET, including .NET 10, can also run on Linux and macOS.
You'll direct the modernization agent through assess, decide, plan, change, and verify. You'll finish with a working application on .NET 10, plus reports and plans that explain the decisions behind it.
This course assumes C#, basic ASP.NET MVC, Visual Studio, NuGet, and basic Git knowledge. You don't need previous modernization experience.
Start: Meet the Book Catalog app and the tools · Go straight to Setup · Run the final upgraded and completed reference app
By the end of the course, you should be able to:
- Start the modernization workflow in Visual Studio and read its assessment.
- Review the assessment and add an application requirement if needed.
- Review upgrade choices and change a practical instruction in the plan.
- Run the upgrade and review the generated project, startup, and controller changes.
- Launch your upgraded app and try its book forms.
- Assess Azure readiness and edit a migration plan without creating resources.
You don't need an Azure subscription to complete the course.
Use Windows, Visual Studio 2026, and PowerShell. The legacy app needs ASP.NET web build tools and .NET Framework 4.8 targeting tools. IIS Express runs the web app locally. SQL Server LocalDB hosts its database.
The .NET software development kit (SDK) supplies tools to build the upgraded app. Use a stable SDK 10 or later. The .NET 10 runtime runs the built application. You'll also need Git and a GitHub account with Copilot access.
Setup explains how to check existing tools before installing anything. Azure CLI, Node, and Python aren't prerequisites for the required lessons.
GitHub Copilot upgrade handles the framework upgrade. In Visual Studio, start through Modernize or @Modernize.
GitHub Copilot modernization handles Azure migration. Chapter 07 uses Visual Studio's Modernize > Migrate to Azure workflow.
The modernization agent generates the reports and changes through Copilot Chat. You choose the options, adjust its instructions, and try the result.
| Chapter | What you do | What you'll learn |
|---|---|---|
| 01: Start here | Understand BookCatalog and the course | This page |
| 02: Meet the app and tools | Meet BookCatalog and the tools | See and understand the sample app |
| 03: Get ready | Check your tools and try the app | Get all the pre-reqs and the sample app running |
| 04: Assess the app | Read the assessment report and add a requirement if needed | An assessment you've reviewed |
| 05: Choose the plan | Review options and edit a plan instruction | A plan ready for execution |
| 06: Upgrade and check | Run the upgrade and use the changed app | Your working .NET 10 application |
| 07: Plan for Azure | Review the Azure report and edit a migration plan | A cloud plan, without deployed resources |
The seven chapters take you from the starting point through the Azure migration plan.
Setup covers cloning and opening your learner workspace. BookCatalog is the continuing project.
Use the supplied demo data. The upgrade rebuilds the demo database and adds the supplied sample books. Existing books don't need to survive the upgrade. You don't need backups, snapshots, or a data-transfer step for this course.
Tool output varies by version and application. Compare the report's meaning and your app's behavior, not screenshot counts.
- Legacy sample quickstart: run BookCatalog before upgrading it.
- Completed reference: compare your upgrade with a working .NET 10 app.
- Previous BookCatalog sample run: see earlier reports, decisions, and unfinished checks.
- Instructor companion: prepare demonstrations and discussions. Optional for self-paced learners.
- GitHub Copilot upgrade documentation: check the framework-upgrade tooling.
- GitHub Copilot modernization for Azure: check the Azure workflow.
- Report a course issue: report a problem with these lessons.
Edit chapter READMEs, not generated website content. See writing guidance, maintainer validation, and website preview instructions.
This project is licensed under the terms of the MIT open source license. Please refer to the LICENSE file for the full terms.
Copyright (c) Microsoft Corporation.
Third-party font and tool licenses remain with their respective assets.