Skip to content
Draft
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
4 changes: 2 additions & 2 deletions aspnetcore/migration/fx-to-core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Migrate from ASP.NET Framework to ASP.NET Core
author: wadepickett
description: Your complete guide to migrating ASP.NET Framework applications to ASP.NET Core, with practical approaches and step-by-step guidance.
ms.author: wpickett
ms.date: 11/10/2025
ms.date: 12/04/2025
uid: migration/fx-to-core/index
---
# Migrate from ASP.NET Framework to ASP.NET Core
Expand Down Expand Up @@ -90,4 +90,4 @@ Incremental migration is an implementation of the Strangler Fig pattern and is b

## In place migration

In place migration can work for sufficiently small applications. If possible, this allows for a quick replacement of the application. However, small issues may be compounded if you decide to do an in place migration. See <xref:migration/fx-to-core/tooling> to learn how Upgrade Assistant can help with an in place migration.
In place migration can work for sufficiently small applications. If possible, this allows for a quick replacement of the application. However, small issues may be compounded if you decide to do an in place migration. See <xref:migration/fx-to-core/tooling> for information on migration tooling options.
6 changes: 3 additions & 3 deletions aspnetcore/migration/fx-to-core/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Get started with incremental ASP.NET to ASP.NET Core migration
author: wadepickett
ms.author: wpickett
monikerRange: '>= aspnetcore-6.0'
ms.date: 07/17/2025
ms.date: 12/04/2025
ms.topic: article
uid: migration/fx-to-core/start
---
Expand Down Expand Up @@ -147,15 +147,15 @@ Depending on your application, you may also need to address:

**Upgrade process for each library:**

If you have supporting libraries in your solution that you will need to use for the routes you're migrating, they should be upgraded to .NET Standard 2.0, if possible. [Upgrade Assistant](https://github.com/dotnet/upgrade-assistant) is a great tool for this. If libraries are unable to target .NET Standard, you can target .NET 8 or later either along with the .NET Framework target in the original project or in a new project alongside the original.
If you have supporting libraries in your solution that you will need to use for the routes you're migrating, they should be upgraded to .NET Standard 2.0, if possible. [GitHub Copilot app modernization](/dotnet/core/porting/github-copilot-app-modernization/overview) can help you with this. If libraries are unable to target .NET Standard, you can target .NET 8 or later either along with the .NET Framework target in the original project or in a new project alongside the original.

The [System.Web adapters](~/migration/fx-to-core/inc/systemweb-adapters.md) can be used in these libraries to enable support for <xref:System.Web.HttpContext> usage in class libraries. In order to enable <xref:System.Web.HttpContext> usage in a library:

1. Remove reference to `System.Web` in the project file
2. Add the `Microsoft.AspNetCore.SystemWebAdapters` package
3. Enable multi-targeting and add a .NET 8 target or later, or convert the project to .NET Standard 2.0.

This step may require a number of projects to change depending on your solution structure and which routes you're migrating. Upgrade Assistant can help you identify which ones need to change and automate a number of steps in the process.
This step may require a number of projects to change depending on your solution structure and which routes you're migrating. [GitHub Copilot app modernization](/dotnet/core/porting/github-copilot-app-modernization/overview) can help you identify which ones need to change and automate a number of steps in the process.


## Next Steps
Expand Down
44 changes: 10 additions & 34 deletions aspnetcore/migration/fx-to-core/tooling.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,23 @@
---
title: Learn to upgrade from ASP.NET MVC, Web API, and Web Forms to ASP.NET Core
description: Learn how to upgrade ASP.NET Framework MVC, Web API, or Web Forms projects to ASP.NET Core using migration tooling
ai-usage: ai-assisted
author: wadepickett
description: Learn how to upgrade ASP.NET Framework MVC, Web API, or Web Forms projects to ASP.NET Core using migration tooling.
ms.author: wpickett
ms.date: 07/17/2025
ms.date: 12/04/2025
title: Learn to upgrade from ASP.NET MVC, Web API, and Web Forms to ASP.NET Core
uid: migration/fx-to-core/tooling
---
# Use tooling to help migrate ASP.NET Framework to ASP.NET Core

This article shows how to upgrade ASP.NET Framework applications (MVC, Web API, and Web Forms) to ASP.NET Core using the Visual Studio [.NET Upgrade Assistant](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant) and the [incremental update](xref:migration/fx-to-core/index) approach.
> [!IMPORTANT]
> .NET Upgrade Assistant is officially deprecated. Use the [GitHub Copilot app modernization chat agent](/dotnet/core/porting/github-copilot-app-modernization/overview) instead, which is included with Visual Studio 2026 and Visual Studio 2022 17.14.16 or later. This agent analyzes your projects and dependencies, produces a step-by-step migration plan with targeted recommendations and automated code fixes, and commits each change so you can validate or roll back. It automates common porting tasks—updating project files, replacing deprecated APIs, and resolving build issues—so you can modernize faster with less manual effort.

This article provides guidance on how to upgrade ASP.NET Framework applications (MVC, Web API, and Web Forms) to ASP.NET Core.

> [!WARNING]
> There is a Copilot-enabled tool for staying current on modern .NET, but is not currently enabled for migrating ASP.NET Framework to ASP.NET Core. Please see the documentation for [GitHub Copilot app modernization - Upgrade for .NET](/dotnet/core/porting/github-copilot-app-modernization-overview) for details.

## Prerequisites
To learn how to upgrade your ASP.NET apps using the recommended tooling, see [How to upgrade a .NET app with GitHub Copilot app modernization](/dotnet/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot).

If your .NET Framework project has supporting libraries in the solution that are required, they should be upgraded to .NET Standard 2.0, if possible. For more information, see [Upgrade supporting libraries](xref:migration/fx-to-core/start#upgrade-supporting-libraries).

## See also

1. Install the [.NET Upgrade Assistant](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant) Visual Studio extension.
1. Open your ASP.NET Framework solution in Visual Studio.
1. In **Solution Explorer**, right click on the project to upgrade and select **Upgrade**. Select **Side-by-side incremental project upgrade**, which is the only upgrade option.
1. For the upgrade target, select **New project**.
1. Name the project and select the most appropriate template. If your solution includes multiple project types, you may add the required services later:

> [!NOTE]
> **For MVC projects:** Select **ASP.NET Core MVC** template.
>
> **For Web API projects:** Select **ASP.NET Core Web API** template.
>
> **For MVC + Web API projects:** Select **ASP.NET Core MVC** template.
>
> **For Web Forms projects:** Select **ASP.NET Core** template.

1. Select **Next**
1. Select the target framework version and then select **Next**. For more information, see [.NET and .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).

> [!NOTE]
> **For Web Forms projects:** Select **Done** instead of **Next**, then proceed to step 9.

1. Review the **Summary of changes**, then select **Finish**.
1. The **Summary** step displays **`<Framework Project>` is now connected to `<Framework ProjectCore>` via Yarp proxy.**

> [!NOTE]
> **For MVC and Web API projects:** The summary includes a pie chart showing the migrated endpoints. Select **Upgrade Controller** and then select a controller to upgrade. Select the component to upgrade, then select **Upgrade selection**.
* [GitHub Copilot app modernization overview](/dotnet/core/porting/github-copilot-app-modernization/overview)