Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Best practices for GitHub Copilot modernization
description: "Learn best practices for using GitHub Copilot modernization to upgrade .NET projects, including preparation, collaboration tips, common pitfalls, and recovery strategies."
ms.topic: best-practice
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to follow best practices when using GitHub Copilot modernization so that I can get the best results from my .NET upgrades and avoid common problems.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: GitHub Copilot modernization core concepts
description: "Learn the key concepts behind GitHub Copilot modernization, including scenarios, skills, tasks, the three-stage workflow, state management, and flow modes."
ms.topic: concept-article
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to understand the core concepts of GitHub Copilot modernization so that I can use the agent effectively and get the best results from my upgrades.
Expand Down Expand Up @@ -158,7 +158,6 @@ The agent maintains persistent state so you can stop and resume at any time. Eve
| `upgrade-options.md` | Confirmed upgrade decisions |
| `plan.md` | The upgrade plan with strategy and task descriptions |
| `tasks.md` | Visual progress dashboard showing task status |
| `execution-log.md` | Detailed log of all changes and decisions |
| `tasks/{taskId}/task.md` | Per-task scope and context |
| `tasks/{taskId}/progress-details.md` | Per-task execution notes and results |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Customize GitHub Copilot modernization
description: "Learn how to customize GitHub Copilot modernization with custom skills, custom scenarios, scenario artifact edits, and chat instructions to encode your team's upgrade patterns."
ms.topic: concept-article
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to customize GitHub Copilot modernization so that I can encode my team's upgrade patterns, enforce coding standards during upgrades, and define custom upgrade workflows.
Expand Down
8 changes: 2 additions & 6 deletions docs/core/porting/github-copilot-app-modernization/faq.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
description: "This article answers frequently asked questions about GitHub Copilot modernization for .NET."
titleSuffix: ""
ms.topic: faq
ms.date: 04/06/2026
ms.date: 07/07/2026

title: GitHub Copilot modernization FAQ
summary: |
Expand Down Expand Up @@ -102,11 +102,7 @@ sections:
answer: |
The agent supports the following upgrade paths:

| Source | Target |
|------------------------------|-----------------|
| .NET Framework (any version) | .NET 8 or later |
| .NET Core 1.x–3.x | .NET 8 or later |
| .NET 5 or later | .NET 8 or later |
[!INCLUDE[supported-upgrade-paths](./includes/supported-upgrade-paths.md)]

- question: Can I use the agent offline?
answer: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: How to upgrade a .NET app with GitHub Copilot modernization
description: "Learn how to upgrade your .NET applications to newer versions using GitHub Copilot modernization. This step-by-step guide covers assessment and the three-stage workflow: assessment, planning, and execution."
ms.topic: how-to
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to upgrade my .NET app using GitHub Copilot modernization so that I can modernize my codebase efficiently with AI assistance through a structured three-stage process.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
author: adegeo
ms.author: adegeo
ms.date: 07/07/2026
ms.topic: include
---

| Source | Target |
|------------------------------|---------------------------|
| .NET Framework (any version) | .NET 8 or later |
| .NET Framework (any version) | .NET Framework 4.8.1 |
| .NET Core 1.x–3.x | .NET 8 or later |
| .NET 5 or later | .NET 8 or later |
49 changes: 31 additions & 18 deletions docs/core/porting/github-copilot-app-modernization/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Install GitHub Copilot modernization
description: "Learn how to install and set up GitHub Copilot modernization across Visual Studio, Visual Studio Code, GitHub Copilot CLI, and GitHub.com."
ms.topic: install-set-up-deploy
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted
zone_pivot_groups: copilot-modernization-install

Expand All @@ -22,14 +22,14 @@ Before you install, make sure you have:

- Windows operating system.
- [Visual Studio 2026](https://visualstudio.microsoft.com/downloads/) (or Visual Studio 2022 version 17.14.17+).
- [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=visualstudio&preserve-view=true#change-workloads-or-individual-components) with these optional components enabled: **GitHub Copilot**, **GitHub Copilot modernization**.
- [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=visualstudio&preserve-view=true#change-workloads-or-individual-components) with these optional components enabled: **GitHub Copilot**, **GitHub Copilot app modernization**.
- GitHub Copilot subscription (paid or free).
- [Sign in to Visual Studio with a GitHub account](/visualstudio/ide/work-with-github-accounts) that has [Copilot access](https://docs.github.com/copilot/get-started/plans#ready-to-choose-a-plan).
- Code written in C# or Visual Basic.

## Install

Visual Studio includes GitHub Copilot modernization, so you don't need to install it separately. Enable the **GitHub Copilot** and **GitHub Copilot modernization** optional components in the **.NET desktop development** workload through the Visual Studio Installer.
Visual Studio includes GitHub Copilot modernization through the **GitHub Copilot app modernization** optional component, so you don't need to install it separately. Enable the **GitHub Copilot** and **GitHub Copilot app modernization** optional components in the **.NET desktop development** workload through the Visual Studio Installer.

## Verify the installation

Expand All @@ -50,16 +50,23 @@ Before you install, make sure you have:

## Install

Install through the Visual Studio Code:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Install through the Visual Studio Code:
Install as a Visual Studio Code extension:


1. In Visual Studio Code, open the **Extensions** view (<kbd>Ctrl+Shift+X</kbd>).
1. Search for **GitHub Copilot modernization**.
1. Search for **GitHub Copilot upgrade**.
1. Select **Install**.

The extension automatically acquires the .NET SDK if it's missing, registers tools, and adds the agent to Copilot Chat as `modernize-dotnet`.
The extension automatically acquires the .NET SDK if it's missing, registers tools, and adds the agent to Copilot Chat as `Upgrade`.

## Verify the installation

1. Open a project in Visual Studio Code.
1. Open **GitHub Copilot Chat** and type `@modernize-dotnet`.
1. Open the **GitHub Copilot Chat** window.
1. Send `@upgrade` in chat and see if it responds.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Send `@upgrade` in chat and see if it responds.
1. Send `@upgrade` in chat and confirm the agent responds.

Very minor: take or leave.


\-or-

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
\-or-
-or-

Seperator was escaped or was a typo, elsewhere -or- is used so making this one the same.


Select the `Agent` dropdown and find the `Upgrade` entry.

::: zone-end

Expand All @@ -69,52 +76,58 @@ The extension automatically acquires the .NET SDK if it's missing, registers too

Before you install, make sure you have:

- GitHub Copilot CLI installed.
- [GitHub Copilot CLI](https://gh.io/cli) installed.
- GitHub Copilot subscription (paid or free).

## Install

To install:
Install through the GitHub Copilot CLI:

1. Open the GitHub Copilot chat window.

1. Add the marketplace plugin:

```console
/plugin marketplace add dotnet/modernize-dotnet
/plugin marketplace add microsoft/upgrade-agent-plugins
```

1. Install the plugin:

```console
/plugin install modernize-dotnet@modernize-dotnet-plugins
/plugin install upgrade-agent@upgrade-agent-plugins
```

## Verify the installation

Run `/agent` to confirm that `modernize-dotnet` appears in the agent list.
Run `/agent` to confirm that `upgrade-agent` appears in the agent list.

::: zone-end

::: zone pivot="github-com"
::: zone pivot="github-copilot-app"

## Prerequisites

Before you install, make sure you have:

- GitHub Copilot Enterprise or Business subscription with coding agents enabled.
- Repository admin access.
- [GitHub Copilot app](https://gh.io/app) installed.
- GitHub Copilot subscription (paid or free).

## Install

Add the custom coding agent to your repository:
Install through the GitHub Copilot app:

1. Review [adding custom coding agents to your repository](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents).
1. Add the `modernize-dotnet` agent. See the [coding agent README](https://github.com/dotnet/modernize-dotnet/blob/main/coding-agent/README.md) for details.
1. Click on [this link](https://github.com/copilot/app/launch?entry_point=upgrade_agent_docs&open=ghapp%3A%2F%2Fplugins%2Fmarketplace%2Fadd%3Fsource%3Dmicrosoft%2Fupgrade-agent-plugins) to automatically open the **Settings** > **Plugins** window in the GitHub Copilot app.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Click on [this link](https://github.com/copilot/app/launch?entry_point=upgrade_agent_docs&open=ghapp%3A%2F%2Fplugins%2Fmarketplace%2Fadd%3Fsource%3Dmicrosoft%2Fupgrade-agent-plugins) to automatically open the **Settings** > **Plugins** window in the GitHub Copilot app.
1. Click [https://github.com/copilot/app/launch](https://github.com/copilot/app/launch?entry_point=upgrade_agent_docs&open=ghapp%3A%2F%2Fplugins%2Fmarketplace%2Fadd%3Fsource%3Dmicrosoft%2Fupgrade-agent-plugins) to automatically open the **Settings** > **Plugins** window in the GitHub Copilot app.

1. In the **Add plugin marketplace?** dialog, select **Allow**.
1. In the **Plugins** window, select **Add marketplace**.
1. Expand the **upgrade-agent-plugins** entry and select **Install** on the **upgrade-agent** plugin.

## Verify the installation

Confirm that the `modernize-dotnet` agent appears as an available coding agent in your repository.
Run `/agent` to confirm that `upgrade-agent:upgrade` appears in the agent list.

-or-

Select the **Default agent** dropdown and find the **Upgrade** entry.

::: zone-end

Expand Down
14 changes: 6 additions & 8 deletions docs/core/porting/github-copilot-app-modernization/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: GitHub Copilot modernization overview
description: "Learn about GitHub Copilot modernization, a Copilot agent available across Visual Studio, Visual Studio Code, GitHub Copilot CLI, and GitHub.com that upgrades .NET projects and migrates apps to Azure."
titleSuffix: ""
ms.topic: overview
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to learn about what GitHub Copilot modernization is, so that I understand its capabilities and how I can take advantage of it.
Expand Down Expand Up @@ -36,6 +36,9 @@ The agent provides multiple end-to-end modernization workflows called _scenarios
| **SqlClient upgrade** | Upgrades from System.Data.SqlClient to Microsoft.Data.SqlClient. | _"Update SqlClient"_ |
| **Azure Functions upgrade** | Upgrades Azure Functions from in-process to isolated worker model. | _"Upgrade my Azure Functions"_ |
| **Semantic Kernel to Agents** | Upgrades Semantic Kernel Agents to Microsoft Agent Framework. | _"Upgrade my SK agents"_ |
| **Aspire integration** | Adds .NET Aspire support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| **Aspire integration** | Adds .NET Aspire support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |
| **Aspire integration** | Adds [Aspire](https://aspire.dev) support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |

| **Aspire version upgrade** | Upgrades existing Aspire applications to newer versions. | _"Upgrade my Aspire version"_ |
| **WebForms-to-Blazor upgrade** | Upgrades ASP.NET Web Forms applications to Blazor. | _"Migrate my Web Forms app to Blazor"_ |

For a full reference of all scenarios and 30+ built-in upgrade skills, see [Scenarios and skills reference](scenarios-and-skills.md).

Expand All @@ -45,7 +48,7 @@ Microsoft values your feedback and uses it to improve the agent. Leave feedback

- In Visual Studio, use the [Suggest a feature](/visualstudio/ide/suggest-a-feature) and [Report a problem](/visualstudio/ide/report-a-problem) options.

- File an issue at the [@modernize-dotnet GitHub repository](https://github.com/dotnet/modernize-dotnet).
- File an issue at the [Upgrade Agent GitHub repository](https://github.com/microsoft/upgrade-agent-plugins).

## Prerequisites

Expand Down Expand Up @@ -73,11 +76,7 @@ To start an upgrade, see [Upgrade a .NET app with GitHub Copilot modernization](

The agent supports the following upgrade paths:

| Source | Target |
|------------------------------|-----------------|
| .NET Framework (any version) | .NET 8 or later |
| .NET Core 1.x–3.x | .NET 8 or later |
| .NET 5 or later | .NET 8 or later |
[!INCLUDE[supported-upgrade-paths](./includes/supported-upgrade-paths.md)]

## Migrate .NET projects to Azure

Expand Down Expand Up @@ -193,7 +192,6 @@ The agent stores all upgrade state in `.github/upgrades/{scenarioId}/`. The fold
| `plan.md` | Ordered task plan |
| `tasks.md` | Live progress dashboard |
| `scenario-instructions.md` | Agent's persistent memory, including preferences, decisions, and custom instructions |
| `execution-log.md` | Detailed audit trail of all changes |
| `tasks/{taskId}/task.md` | Per-task scope and context |
| `tasks/{taskId}/progress-details.md` | Per-task execution notes and results |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: GitHub Copilot modernization scenarios and skills
description: "Complete reference of all scenarios and built-in upgrade skills available in GitHub Copilot modernization for .NET, organized by domain."
ms.topic: reference
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to see all the scenarios and skills that GitHub Copilot modernization supports so that I can understand which upgrade tasks the agent can handle for me.
Expand Down Expand Up @@ -33,18 +33,17 @@ Scenarios are the agent's top-level upgrade workflows. When you start a conversa
| [**SqlClient upgrade**](#sqlclient-upgrade) | Upgrades System.Data.SqlClient to Microsoft.Data.SqlClient. | _"Update SqlClient to the modern package"_ |
| [**Azure Functions upgrade**](#azure-functions-upgrade) | Upgrades Azure Functions from in-process to isolated worker model. | _"Upgrade my Azure Functions"_ |
| [**Semantic Kernel to Agents**](#semantic-kernel-to-microsoft-agent-framework) | Upgrades from SK Agents to Microsoft Agent Framework. | _"Upgrade my SK agents"_ |
| [**Aspire integration**](#aspire-integration) | Adds .NET Aspire support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [**Aspire integration**](#aspire-integration) | Adds .NET Aspire support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |
| [**Aspire integration**](#aspire-integration) | Adds [Aspire](https://aspire.dev) support for inner-loop and Azure deployment. | _"Add Aspire to my app"_ |

| [**Aspire version upgrade**](#aspire-version-upgrade) | Upgrades existing Aspire applications to newer versions. | _"Upgrade my Aspire version"_ |
| [**WebForms-to-Blazor upgrade**](#webforms-to-blazor-upgrade) | Upgrades ASP.NET Web Forms applications to Blazor. | _"Migrate my Web Forms app to Blazor"_ |

For an end-to-end walkthrough, see [Core concepts](concepts.md).

### .NET version upgrade

The most common scenario. Upgrades your projects from any older .NET variant to the latest:

| Source | Target |
|------------------------------|-----------------|
| .NET Framework (any version) | .NET 8 or later |
| .NET Core 1.x–3.x | .NET 8 or later |
| .NET 5 or later | .NET 8 or later |
[!INCLUDE[supported-upgrade-paths](./includes/supported-upgrade-paths.md)]

The agent analyzes your dependency graph, checks NuGet compatibility, identifies breaking changes, and creates a task plan using the best strategy for your solution (bottom-up, top-down, or all-at-once). If your projects need format conversions, the agent handles them automatically as part of the upgrade.

Expand All @@ -68,6 +67,18 @@ Upgrades Azure Functions from the in-process hosting model to the isolated worke

Upgrades from Semantic Kernel Agents (`ChatCompletionAgent`, `OpenAIAssistantAgent`) to [Microsoft Agent Framework](/agent-framework/overview/). Updates packages and API patterns.

### Aspire integration

Adds .NET Aspire support to existing applications for inner-loop development and Azure deployment. Configures the Aspire orchestration layer and integrates with the Aspire CLI agent.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Adds .NET Aspire support to existing applications for inner-loop development and Azure deployment. Configures the Aspire orchestration layer and integrates with the Aspire CLI agent.
Adds [Aspire](https://aspire.dev) support to existing applications for inner-loop development and Azure deployment. Configures the Aspire orchestration layer and integrates with the Aspire CLI agent.


### Aspire version upgrade

Upgrades existing .NET Aspire applications to newer versions of Aspire. Handles package updates, configuration changes, and breaking API changes between Aspire versions.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Upgrades existing .NET Aspire applications to newer versions of Aspire. Handles package updates, configuration changes, and breaking API changes between Aspire versions.
Upgrades existing Aspire applications to newer versions of Aspire. Handles package updates, configuration changes, and breaking API changes between Aspire versions.


### WebForms-to-Blazor upgrade

Upgrades ASP.NET Web Forms applications to Blazor using native Blazor and HTML5 patterns. Converts Web Forms pages, controls, and code-behind to Blazor components.

## Upgrade skills: common

General-purpose upgrade skills that apply across project types.
Expand All @@ -94,6 +105,7 @@ Skills for upgrading data access layers, including Entity Framework, LINQ to SQL
| **Upgrading EDMX to Code-First** | Converts EF6 Database-First (`.edmx`) models to EF Core Code-First. Scaffolds entities from the database. |
| **Upgrading EF DbContext** | Registers `DbContext` in ASP.NET Core dependency injection. Handles both EF6 to EF Core and existing EF Core patterns. |
| **Upgrading EF6 Code-First to EF Core** | Upgrades EF6 Code-First to EF Core. Swaps packages, updates namespaces, and replaces `EntityTypeConfiguration` and `DbModelBuilder`. |
| **Upgrading LINQ to SQL to EF Core** | Migrates LINQ to SQL (`System.Data.Linq`) data access to Entity Framework Core. |
| **Upgrading to Microsoft.Data.SqlClient** | Upgrades from `System.Data.SqlClient`. Handles the `Encrypt=true` default change and connection string differences. |

## Upgrade skills: web and ASP.NET
Expand Down Expand Up @@ -147,6 +159,7 @@ Skills for upgrading ASP.NET Framework applications to ASP.NET Core.
| **Upgrading Azure Functions Startup** | Upgrades Azure Functions from the in-process `Startup` class to isolated worker model with `Program.cs`. |
| **Upgrading Azure Functions to v2** | Upgrades Azure Functions to the v2 hosting pattern using `IHostApplicationBuilder`. |
| **Upgrading Azure Key Vault** | Upgrades legacy Azure Key Vault SDK to the modern `Azure.Security.KeyVault` libraries. |
| **Upgrading Azure SDK** | Upgrades legacy Azure SDK dependencies to the latest `Azure.*` libraries. |
| **Upgrading Azure Service Bus** | Upgrades legacy Azure Service Bus SDK to the modern `Azure.Messaging.ServiceBus` library. |
| **Upgrading Azure Storage** | Upgrades legacy Azure Storage SDK to the modern `Azure.Storage` libraries. |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Troubleshoot GitHub Copilot modernization
description: "Find solutions to common problems when you use GitHub Copilot modernization for .NET, including workflow, build, Git, performance, and customization issues."
ms.topic: troubleshooting-general
ms.date: 04/06/2026
ms.date: 07/07/2026
ai-usage: ai-assisted

#customer intent: As a developer, I want to troubleshoot issues with GitHub Copilot modernization so that I can resolve problems and continue my .NET upgrade.
Expand Down Expand Up @@ -76,7 +76,7 @@ These issues relate to build failures, NuGet restore problems, and code generati

1. Tell the agent about the failure. The agent analyzes errors automatically.
1. If the agent can't resolve the issue, revert the last commit (`git revert HEAD`) and ask the agent to try a different approach.
1. For complex failures, check `execution-log.md` to understand what the agent changed and in what order.
1. For complex failures, check `tasks.md` to find the failing task ID, and then review `tasks/{taskId}/progress-details.md` to understand what the agent changed and in what order.

### NuGet restore fails

Expand Down Expand Up @@ -185,7 +185,7 @@ These issues relate to custom skills and scenario instruction files.
When something isn't working as expected:

1. **Ask the agent:** Ask _"What went wrong with the last task?"_ The agent can often explain what happened and suggest next steps.
1. **Review the execution log:** Open `execution-log.md` in `.github/upgrades/{scenarioId}/`. The log shows a chronological record of what the agent did, including any errors it encountered.
1. **Review the task progress:** Open `tasks.md` in `.github/upgrades/{scenarioId}/` to find the last task ID, and then open `tasks/{taskId}/progress-details.md`. The progress details show what the agent did, including any errors it encountered.
1. **File an issue:** If you've found a bug or the agent consistently fails at something, file an issue at the [@modernize-dotnet GitHub repository](https://github.com/dotnet/modernize-dotnet).

## Related content
Expand Down
Loading
Loading