Hi @PHAM VAN NAM
Thanks for reaching out. Here is how each point aligns with the current Microsoft guidance.
- Can the application move to .NET 10 while remaining in VB.NET?
Partially. The existing ASP.NET Web Forms project cannot be directly retargeted from .NET Framework 3.5 to .NET 10 because Web Forms depends on System.Web and was not ported to ASP.NET Core. Migrating the web application therefore requires rewriting the presentation layer rather than simply changing its target framework.
Migrate from ASP.NET Framework to ASP.NET Core
Reusable non-web components, such as business logic, domain models, and compatible class libraries, can remain written in VB.NET. However, they must be retargeted and checked for dependencies on .NET Framework-only APIs and packages. Microsoft’s Visual Basic strategy states that VB will remain supported for existing core scenarios, including libraries, but is unlikely to be extended to new workloads such as web front ends.
Visual Basic language strategy
- Can ASP.NET Core MVC or Razor Pages be developed in VB.NET on .NET 10?
ASP.NET Core does not provide first-party VB.NET web templates or Razor tooling, and VB.NET is not the recommended language for new ASP.NET Core web front ends. Razor syntax and its associated tooling are based on C#, so Razor views, Razor Pages, and Blazor components use C# for their Razor code.
Visual Basic language strategy
ASP.NET Web Forms itself is not available in ASP.NET Core. Therefore, moving a Web Forms application to .NET 10 is not an in-place framework upgrade. The web UI must be rewritten using an ASP.NET Core UI framework.
Migrate from ASP.NET Web Forms to Blazor
- Can the other projects remain in VB.NET while only the web project is rewritten in C#?
Yes. This is a practical migration architecture and can maximize the amount of reusable code. The new ASP.NET Core web project can be written in C# and reference compatible VB.NET class libraries.
However, those libraries may require changes if they depend on System.Web, HttpContext.Current, Web Forms types, old configuration APIs, unsupported NuGet packages, or other .NET Framework-only features.
Because the current application targets .NET Framework 3.5, it cannot directly consume .NET Standard 2.0 libraries. The existing application would first need to move to a compatible .NET Framework version. Reusable libraries could then target .NET Standard 2.0, or multi-target .NET Framework and .NET 10, while the old and new applications coexist.
.NET Standard
- What is the recommended approach for a large Web Forms application?
For a large production application, Microsoft recommends considering an incremental migration rather than replacing the entire application at once.
The current guidance describes creating a new ASP.NET Core application beside the existing Web Forms application and using YARP to proxy requests that have not yet been migrated back to the original application. This allows individual routes or features to be moved gradually while the existing application remains available.
Get started with incremental ASP.NET to ASP.NET Core migration
System.Web adapters can help with selected shared-library, authentication, session, and remote-app scenarios during the transition. They do not make Web Forms pages run in ASP.NET Core, so the UI still needs to be rewritten.
System.Web adapters
When selecting the new UI framework, Blazor may feel more familiar to Web Forms developers because it uses reusable components and event-driven UI patterns. Razor Pages provides a page-focused request-handler model, but it does not reproduce Web Forms postbacks, ViewState, server controls, or the Web Forms page lifecycle. The appropriate choice depends on the application’s interaction model, architecture, hosting requirements, and the team’s experience.
Migrate from ASP.NET Web Forms to Blazor
- What tooling is currently recommended?
The current Microsoft recommendation is the GitHub Copilot modernization chat agent. It can assess projects and dependencies, generate a migration plan, provide targeted recommendations, and automate some common migration changes.
The older .NET Upgrade Assistant is officially deprecated in favor of this agent. Automation can help with project and API changes, but a Web Forms migration still requires architectural decisions and a rewrite of the presentation layer.
.NET Upgrade Assistant overview
For this application, a realistic high-level sequence would be:
- Inventory the dependencies and separate reusable logic from Web Forms-specific code.
- Move the existing application to a compatible .NET Framework version where feasible.
- Retarget or multi-target the reusable VB.NET libraries.
- Create the new ASP.NET Core web application in C#.
- Run the old and new applications side by side.
- Migrate routes and features incrementally.
- Retire the Web Forms application after the remaining functionality has been moved and validated.
If this answers your questions, you can mark the response accordingly so that other community members can more easily find the solution.
I hope this helps! If my answer was helpful so far, you can follow this guidance to provide some feedback. This also help others find the solution easier.