Skip to content

Repository files navigation

.NET Modernization for Beginners

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

What you'll learn

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.

Prerequisites

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.

Which Copilot tool are we using?

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.

Course structure

A travel-poster route through the seven course chapters, from the starting point to the Azure migration plan.

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.

Work on your own copy

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.

Samples and help

Contributing

Edit chapter READMEs, not generated website content. See writing guidance, maintainer validation, and website preview instructions.

License

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.

About

A course to learn how to upgrade and migrate .NET applications

Topics

Resources

Code of conduct

Security policy

Stars

57 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages