Skip to content
Merged

Publish #46244

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 @@ -14,11 +14,8 @@ ms.custom: devx-track-dotnet, devx-track-dotnet-ai
## Prerequisites

* Azure subscription. [Create one for free](https://azure.microsoft.com/free/ai-services?azure-portal=true).
* Access granted to Azure OpenAI in the desired Azure subscription.

Currently, access to this service is granted only by application. You should [apply for access](https://aka.ms/oai/access) to Azure OpenAI.

* [Dev containers](https://containers.dev/) are available for both samples, with all dependencies required to complete this article. You can run the dev containers in GitHub Codespaces (in a browser) or locally using Visual Studio Code.
[Dev containers](https://containers.dev/) are available for both samples, with all dependencies required to complete this article. You can run the dev containers in GitHub Codespaces (in a browser) or locally using Visual Studio Code.

#### [Codespaces (recommended)](#tab/github-codespaces)

Expand Down
4 changes: 0 additions & 4 deletions docs/ai/get-started-app-chat-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,12 @@ To follow along with this article, you need the following prerequisites:

* An Azure subscription - [Create one for free](https://azure.microsoft.com/free/ai-services?azure-portal=true)
* Azure account permissions - Your Azure account must have Microsoft.Authorization/roleAssignments/write permissions, such as [User Access Administrator](/azure/role-based-access-control/built-in-roles#user-access-administrator) or [Owner](/azure/role-based-access-control/built-in-roles#owner).
* Access granted to Azure OpenAI in the desired Azure subscription.
Currently, access to this service is granted only by application. You can apply for access to Azure OpenAI by completing the form at [https://aka.ms/oai/access](https://aka.ms/oai/access). Open an issue on this repo to contact us if you have a problem.
* GitHub account

#### [Visual Studio Code](#tab/visual-studio-code)

* An Azure subscription - [Create one for free](https://azure.microsoft.com/free/ai-services?azure-portal=true)
* Azure account permissions - Your Azure account must have Microsoft.Authorization/roleAssignments/write permissions, such as [User Access Administrator](/azure/role-based-access-control/built-in-roles#user-access-administrator) or [Owner](/azure/role-based-access-control/built-in-roles#owner).
* Access granted to Azure OpenAI in the desired Azure subscription.
Currently, access to this service is granted only by application. You can apply for access to Azure OpenAI by completing the form at [https://aka.ms/oai/access](https://aka.ms/oai/access). Open an issue on this repo to contact us if you have a problem.
* [Azure Developer CLI](/azure/developer/azure-developer-cli)
* [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Start Docker Desktop if it's not already running
* [Visual Studio Code](https://code.visualstudio.com/)
Expand Down
5 changes: 2 additions & 3 deletions docs/ai/quickstarts/build-chat-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ms.date: 04/09/2025
ms.topic: quickstart
ms.custom: devx-track-dotnet, devx-track-dotnet-ai
author: fboucher
ms.author: frbouche
zone_pivot_groups: openai-library
# CustomerIntent: As a .NET developer new to AI, I want deploy and use sample code to interact to learn from the sample code.
---
Expand Down Expand Up @@ -91,8 +90,8 @@ Complete the following steps to create a .NET console app to connect to an AI mo

```bash
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
dotnet user-secrets set OpenAIKey <your-OpenAI-key>
dotnet user-secrets set ModelName <your-OpenAI-model-name>
```

:::zone-end
Expand Down
5 changes: 2 additions & 3 deletions docs/ai/quickstarts/build-vector-search-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ms.date: 12/06/2024
ms.topic: quickstart
ms.custom: devx-track-dotnet, devx-track-dotnet-ai
author: fboucher
ms.author: frbouche
zone_pivot_groups: openai-library
# CustomerIntent: As a .NET developer new to AI, I want deploy and use sample code to interact to learn from the sample code.
---
Expand Down Expand Up @@ -132,8 +131,8 @@ Complete the following steps to create a .NET console app that can:

```bash
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
dotnet user-secrets set OpenAIKey <your-OpenAI-key>
dotnet user-secrets set ModelName <your-OpenAI-model-name>
```

> [!NOTE]
Expand Down
5 changes: 2 additions & 3 deletions docs/ai/quickstarts/generate-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ms.date: 04/09/2025
ms.topic: quickstart
ms.custom: devx-track-dotnet, devx-track-dotnet-ai
author: fboucher
ms.author: frbouche
zone_pivot_groups: openai-library
# CustomerIntent: As a .NET developer new to OpenAI, I want deploy and use sample code to interact to learn from the sample code to generate images.
---
Expand Down Expand Up @@ -88,8 +87,8 @@ Complete the following steps to create a .NET console app to connect to an AI mo

```bash
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
dotnet user-secrets set OpenAIKey <your-OpenAI-key>
dotnet user-secrets set ModelName <your-OpenAI-model-name>
```

:::zone-end
Expand Down
2 changes: 1 addition & 1 deletion docs/ai/quickstarts/includes/ai-templates-azure-openai.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ The **AI Chat Web App** app is almost ready to go as soon as it's created. Howev
# [.NET CLI](#tab/configure-dotnet-cli)

```dotnetcli
dotnet user-secrets set AzureOpenAi:Endpoint <your-azure-openai-endpoint>
dotnet user-secrets set AzureOpenAi:Endpoint <your-Azure-OpenAI-endpoint>
```

---
Expand Down
4 changes: 2 additions & 2 deletions docs/ai/quickstarts/includes/ai-templates-openai.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ The **AI Chat Web App** app is almost ready to go as soon as it's created. Howev

```json
{
"OpenAi:Key": "<your-openai-key>"
"OpenAi:Key": "<your-OpenAI-key>"
}
```

# [.NET CLI](#tab/configure-dotnet-cli)

```dotnetcli
dotnet user-secrets set OpenAi:Key <your-openai-key>
dotnet user-secrets set OpenAi:Key <your-OpenAI-key>
```

---
Expand Down
4 changes: 2 additions & 2 deletions docs/ai/quickstarts/includes/create-ai-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@

```bash
dotnet user-secrets init
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-azure-openai-endpoint>
dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-azure-openai-model-name>
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
```
4 changes: 1 addition & 3 deletions docs/ai/quickstarts/includes/prerequisites-azure-openai.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
---
author: fboucher
ms.author: frbouche
ms.date: 05/22/2024
ms.date: 05/12/2025
ms.topic: include
---

## Prerequisites

- .NET 8.0 SDK or higher - [Install the .NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0).
- An Azure subscription - [Create one for free](https://azure.microsoft.com/free).
- Access to [Azure OpenAI service](/azure/ai-services/openai/overview#how-do-i-get-access-to-azure-openai).
- Azure Developer CLI (optional) - [Install or update the Azure Developer CLI](/azure/developer/azure-developer-cli/install-azd).
1 change: 0 additions & 1 deletion docs/ai/quickstarts/includes/prerequisites-openai.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
author: jmatthiesen
ms.author: jomatthi
ms.date: 07/03/2024
ms.topic: include
---
Expand Down
5 changes: 2 additions & 3 deletions docs/ai/quickstarts/prompt-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ms.date: 05/02/2025
ms.topic: quickstart
ms.custom: devx-track-dotnet, devx-track-dotnet-ai
author: fboucher
ms.author: frbouche
zone_pivot_groups: openai-library
# CustomerIntent: As a .NET developer new to OpenAI, I want deploy and use sample code to interact to learn from the sample code to summarize text.
---
Expand Down Expand Up @@ -87,8 +86,8 @@ Complete the following steps to create a .NET console app to connect to an AI mo

```bash
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
dotnet user-secrets set OpenAIKey <your-OpenAI-key>
dotnet user-secrets set ModelName <your-OpenAI-model-name>
```

:::zone-end
Expand Down
4 changes: 2 additions & 2 deletions docs/ai/quickstarts/structured-output.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ Complete the following steps to create a console app that connects to the `gpt-4

```bash
dotnet user-secrets init
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-azure-openai-endpoint>
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
dotnet user-secrets set AZURE_OPENAI_GPT_NAME gpt-4o
dotnet user-secrets set AZURE_TENANT_ID <your-tenant-id>
dotnet user-secrets set AZURE_TENANT_ID <your-tenant-ID>
```

> [!NOTE]
Expand Down
5 changes: 2 additions & 3 deletions docs/ai/quickstarts/use-function-calling.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ms.date: 03/13/2025
ms.topic: quickstart
ms.custom: devx-track-dotnet, devx-track-dotnet-ai
author: fboucher
ms.author: frbouche
zone_pivot_groups: openai-library
# CustomerIntent: As a .NET developer new to OpenAI, I want deploy and use sample code to interact to learn from the sample code how to extend the model using Tools.
---
Expand Down Expand Up @@ -92,8 +91,8 @@ Complete the following steps to create a .NET console app to connect to an AI mo

```bash
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
dotnet user-secrets set OpenAIKey <your-OpenAI-key>
dotnet user-secrets set ModelName <your-OpenAI-model-name>
```

:::zone-end
Expand Down
8 changes: 4 additions & 4 deletions docs/ai/tutorials/tutorial-ai-vector-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ The Cosmos Recipe Guide app allows you to perform vector and AI driven searches

```json
"OpenAIEndpoint": "https://<your-service-name>.openai.azure.com/",
"OpenAIKey": "<your-api-key>",
"OpenAIEmbeddingDeployment": "<your-ada-deployment-name>",
"OpenAIcompletionsDeployment": "<your-gpt-deployment-name>",
"MongoVcoreConnection": "<your-mongo-connection-string>"
"OpenAIKey": "<your-API-key>",
"OpenAIEmbeddingDeployment": "<your-ADA-deployment-name>",
"OpenAIcompletionsDeployment": "<your-GPT-deployment-name>",
"MongoVcoreConnection": "<your-Mongo-connection-string>"
```

1. Launch the app by pressing the **Start** button at the top of Visual Studio.
Expand Down
4 changes: 4 additions & 0 deletions docs/core/compatibility/core-libraries/8.0/complex-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,7 @@ If you need the previous format, you can use a custom string formatting mechanis
## Affected APIs

- <xref:System.Numerics.Complex.ToString%2A?displayProperty=fullName>

## See also

- [Format a complex number](../../../../fundamentals/runtime-libraries/system-numerics-complex.md#format-a-complex-number)
1 change: 1 addition & 0 deletions docs/core/diagnostics/dotnet-trace.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ dotnet-trace collect [--buffersize <size>] [--clreventlevel <clreventlevel>] [--
| `compilationdiagnostic` | `0x2000000000` |
| `methoddiagnostic` | `0x4000000000` |
| `typediagnostic` | `0x8000000000` |
| `waithandle` | `0x40000000000` |

You can read about the CLR provider more in detail on the [.NET runtime provider reference documentation](../../fundamentals/diagnostics/runtime-events.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/core/diagnostics/eventpipe.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ EventPipe aggregates events emitted by runtime components - for example, the Jus

The events are then serialized in the `.nettrace` file format and can be written directly to a file or streamed through a [diagnostic port](./diagnostic-port.md) for out-of-process consumption.

To learn more about the EventPipe serialization format, refer to the [EventPipe format documentation](https://github.com/microsoft/perfview/blob/main/src/TraceEvent/EventPipe/EventPipeFormat.md).
To learn more about the NetTrace format, see the [NetTrace format documentation](https://github.com/microsoft/perfview/blob/main/src/TraceEvent/EventPipe/NetTraceFormat.md).

## EventPipe vs. ETW/perf_events

Expand Down
69 changes: 69 additions & 0 deletions docs/core/porting/github-copilot-app-modernization-faq.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
### YamlMime:FAQ
metadata:
title: GitHub Copilot app modernization - upgrade for .NET FAQ
description: "This article answers frequently asked questions about GitHub Copilot app modernization - upgrade for .NET."
titleSuffix: ""
author: adegeo
ms.author: adegeo
ms.topic: faq
ms.date: 05/16/2025

title: GitHub Copilot app modernization - upgrade for .NET FAQ
summary: |
GitHub Copilot app modernization - upgrade for .NET is an interactive GitHub Copilot extension that adds powerful upgrade capabilities to Visual Studio. This article answers frequently asked questions. For more information about the tool, see [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md).

sections:
- name: Scenarios
questions:
- question: What can the tool do?
answer: |
Currently, app modernization - upgrade for .NET helps you upgrade your .NET projects to newer versions of .NET. The tool is an extension for Visual Studio that performs the following steps in a GitHub Copilot chat session:

- Analyze your projects and proposes an upgrade plan.
- According to the plan, runs a series of tasks to upgrade your projects.
- Operates in a working branch under a local Git repository.
- Automatically fix issues during the code transformation.
- Report progress and allow access to code changes & logs.
- Learns from the interactive experience with you (within the context of the session) to improve subsequent transformations.

- question: What can the tool upgrade?
answer: |
App modernization - upgrade for .NET currently focuses on migrating your projects from one version of .NET to another. For example, upgrading from .NET Core 3.1 or .NET 6, to .NET 9. It also upgrades dependencies and fixes errors in the code post-migration.

Besides upgrading the target framework, the tool can work with the following types of projects:

- Azure Functions.
- Console apps and class libraries.
- Web technologies such as:
- MVC
- Blazor
- Razor Pages
- Web API
- Desktop technologies such as Windows Forms and Windows Presentation Foundation.
- Test projects such as MSTest and NUnit.

- question: What limitations are there?
answer: |
- It doesn't support .NET Framework projects. (First upgrade the project to .NET with the [Upgrade Assistant tool](upgrade-assistant-overview.md))
- Only Git repositories are supported.
- There's no guarantee that the upgrade suggestions are considered best practices.
- The LLM doesn't persist learning from the upgrade. Meaning, code fixes and corrections you provide during the upgrade process don't persist and can't be remembered for future upgrades.

- question: What data is collected?
answer: |
The tool only collects telemetry information about project types, intent to upgrade, and upgrade duration. The data is aggregated through Visual Studio itself and doesn't contain any user-identifiable information. For more information about Microsoft's privacy policy, see [Visual Studio Customer Experience Improvement Program](/visualstudio/ide/visual-studio-experience-improvement-program?view=vs-2022).

- question: Can I disable telemetry?
answer: |
Yes, you can disable telemetry through Visual Studio itself. In Visual Studio, select **Help** > **Privacy** > **Privacy Settings** > **"No, I would not like to participate."**

- question: Can I train the model based on my code base?
answer: |
No. Unlike traditional AI tools where you might enter freeform prompts, the tool operates in a more structured way. The AI is embedded within the build-and-fix process, meaning, the prompts it uses are predefined and tied to the upgrade plan. So it's not something you can train on your codebase, and it's not something you can manually steer with custom instructions, beyond the changes you can make to the plan markdown file.

However, the tool does have some adaptability within a session. If you manually adjust a fix, it learns from that interaction in the short term and applies similar corrections if it encounters the same issue again. Think of it as refining its approach within the scope of that upgrade. We never store a user's codebase and never use your code for training the model. Once an upgrade is complete, session data is deleted and not stored.

additionalContent: |
## Related content

To learn more, see [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md).
58 changes: 58 additions & 0 deletions docs/core/porting/github-copilot-app-modernization-install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: Install GitHub Copilot app modernization - upgrade for .NET
description: "Learn how to install the GitHub Copilot app modernization - upgrade for .NET Visual Studio extension. App modernization assists you when upgrading projects to the latest dependencies or when upgrading to a new version of .NET"
titleSuffix: ""
author: adegeo
ms.author: adegeo
ms.topic: install-set-up-deploy
ms.date: 05/16/2025

#customer intent: As a developer, I want to install GitHub Copilot App Modernization so that I can upgrade my projects.

---

# Install GitHub Copilot app modernization - upgrade for .NET

This article guides you through installing GitHub Copilot app modernization - upgrade for .NET extension in Visual Studio.

## Prerequisites

- Windows Operating System
- [Visual Studio 2022 version 17.14 or newer](https://visualstudio.microsoft.com/downloads/).
- [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=vs-2022&preserve-view=true#change-workloads-or-individual-components).

## Visual Studio Extension

The following steps install the Visual Studio extension.

> [!TIP]
> As an alternative to using the **Manage Extensions** feature of Visual Studio, you can download and run the extensions installer from the [Visual Studio Marketplace](https://aka.ms/ghcp-appmod/dotnet-upgrade-vsix).

01. Open Visual Studio.

If the **Open Recent \ Get Started** window opens, select the **Continue without code** link.

01. Select the **Extensions** > **Manage Extensions** menu to open the **Extension Manager** window.
01. Select the **Browse** tab.
01. Type **GitHub Copilot App Modernization** into the search box.
01. Select the **GitHub Copilot App Modernization** item, and then select **Install**.

:::image type="content" source="media/github-copilot-app-modernization-install/visual-studio-manage-extensions.png" alt-text="The manage extensions window in Visual Studio, showing the GitHub Copilot App Modernization.":::

01. Once the extension finishes downloading, close Visual Studio to automatically start the installation.

:::image type="content" source="media/github-copilot-app-modernization-install/install-prompt.png" alt-text="A prompt to install the GitHub Copilot App Modernization extension.":::

01. Select **Modify** and follow the instructions to install the extension.

## Validation

The following information helps you determine that GitHub Copilot App Modernization is installed.

There are two ways to determine if GitHub Copilot App Modernization is installed as a Visual Studio extension. The quickest way is to right-click on any .NET or .NET Framework project in the **Solution Explorer** window and check for an **Upgrade** menu item.

Another way is to select the **Extensions** > **Manage Extensions** menu to open the **Extension Manager** window. Then, select the **Installed** tab and find it in the list of installed extensions.

## Related content

- [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md)
Loading
Loading