Request for Microsoft guidance: Migration strategy from VB.NET/ASP.NET MVC/System.Web to .NET 10

PHAM VAN NAM 5 Reputation points
2026-08-08T06:24:25.0766667+00:00

Dear Microsoft Support Team,

We are currently evaluating a modernization strategy for an existing enterprise system, GMTP/F-GDC, and would like to request Microsoft's official technical guidance before deciding on our migration approach.

1. Current system

Our system is a long-running enterprise application with the following technology stack:

  • VB.NET

ASP.NET MVC on System.Web

.NET Framework

TERASOLUNA Framework (legacy .NET version)

Microsoft Enterprise Library

SQL Server

Windows Server

The system consists of:

Web application: approximately 69 GSK screens

Web Services: legacy ASMX services

Batch/Report: approximately 27 BSK and 49 FSK applications

Business Common library

Common Framework library

WinForms/Console tools

SSIS

Excel/Access VBA macros

Some third-party/legacy components include:

Microsoft.Practices.EnterpriseLibrary.*

Microsoft.Web.Mvc.dll

MvcContrib

NVelocity

log4net

ICSharpCode.SharpZipLib

ExcelCreator

Legacy TERASOLUNA Framework components

Our target platform under consideration is:

.NET 10

ASP.NET Core

C#

SQL Server 2019 or later

Modern Windows Server / potentially Linux or container environments

2. Main question: VB.NET support on .NET 10

The most important issue for us is the future of VB.NET.

We understand that VB.NET can be used for class libraries, console applications, batch applications and WinForms applications on modern .NET.

However, our understanding is that VB.NET is not supported for developing ASP.NET Core applications.

Could Microsoft please confirm officially:

Is VB.NET supported for ASP.NET Core applications on .NET 10?

Is VB.NET supported for ASP.NET Core MVC applications on .NET 10?

Is VB.NET supported for ASP.NET Core Web API applications on .NET 10?

Does Microsoft have any roadmap or plan to support VB.NET for ASP.NET Core Web/API development in future .NET releases?

If ASP.NET Core does not support VB.NET, is the recommended migration path to rewrite the Web/API layer in C# while keeping reusable business logic in VB.NET class libraries where technically possible?

This point is critical because our existing Web and ASMX Web Service applications are written in VB.NET.

3. .NET Framework 4.8 and long-term support

If we decide to temporarily keep the existing Web application on .NET Framework 4.8, we would like Microsoft's recommendation regarding its long-term support model.

Specifically:

What is Microsoft's current support policy for .NET Framework 4.8?

How does .NET Framework 4.8 support depend on the underlying Windows Server operating system?

If we upgrade the production environment to Windows Server 2022 or Windows Server 2025, how long can we reasonably continue running an ASP.NET MVC/System.Web application on .NET Framework 4.8?

Is there any Microsoft recommendation for enterprises that need to keep ASP.NET MVC/System.Web applications running for several more years while gradually migrating to ASP.NET Core?

Are there any important security or compatibility risks that Microsoft recommends specifically reviewing when moving an existing ASP.NET MVC application to .NET Framework 4.8?

4. Migration strategy

We are considering four possible strategies.

Option A — Full Freeze

Keep the entire system on:

VB.NET

ASP.NET MVC/System.Web

.NET Framework 4.8

Windows Server 2022/2025

No immediate migration to .NET 10.

Option B — Hybrid

Keep:

Web/WebService → VB.NET + .NET Framework 4.8

Modernize:

Batch

Business Common

Tools

to:

VB.NET

.NET 10

Option C — Full Modernization

Rewrite:

Web → C# + ASP.NET Core + .NET 10

Web Service → C# + ASP.NET Core Web API + .NET 10

Batch → .NET 10

Business Common → .NET 10

Tools → .NET 10

The goal would be to eventually have the entire system on modern .NET.

Option D — Incremental Modernization / Strangler Pattern

Keep the existing VB.NET/ASP.NET MVC application running while gradually developing individual GSK screens in:

C#

ASP.NET Core

.NET 10

The old and new applications would temporarily run in parallel, with routing/reverse proxy technology directing users to either the legacy or modern application.

Eventually, all GSK screens would be migrated and the legacy ASP.NET MVC/System.Web application would be retired.

Based on Microsoft's experience with large enterprise applications, which of the above approaches would Microsoft recommend for a system of this type?

In particular, we would appreciate guidance on:

Is incremental modernization (Option D) a recommended approach for a large ASP.NET MVC/System.Web application?

Is it technically reasonable to run ASP.NET MVC/.NET Framework 4.8 and ASP.NET Core/.NET 10 applications side-by-side for several years?

What Microsoft technologies would you recommend for routing traffic between the legacy and modern applications?

IIS URL Rewrite

  YARP

  
     Other Microsoft-supported technologies

     
     What is the recommended approach for authentication and authorization when users need to move between the legacy application and the new ASP.NET Core application?

     
     What is the recommended approach for sharing session/state between the two applications, if required?

     
     Are there any Microsoft-recommended patterns for gradually replacing individual ASP.NET MVC screens with ASP.NET Core applications?
```## 6. Business logic and shared libraries

Our Business Common and Framework libraries contain significant business logic written in VB.NET.

We would like to avoid rewriting business logic unnecessarily.

Could Microsoft advise whether the following architecture is reasonable?

Legacy:


```sql
ASP.NET MVC / VB.NET / .NET Framework 4.8
         |
         +---- Business Common

Modern:

ASP.NET Core / C# / .NET 10
         |
         +---- Business Common

If the shared Business Common is migrated to modern .NET, can it remain implemented in VB.NET while being consumed by a C# ASP.NET Core application?

If yes, what project target framework would Microsoft recommend for such shared libraries?

Would you recommend:

.NET 10 class libraries

.NET Standard 2.0

Multi-targeting

Another approach

We are particularly interested in avoiding unnecessary dependency on .NET Standard 2.0 if it is not required.

7. Legacy technologies

We also have dependencies on several legacy technologies.

Could Microsoft provide guidance on the recommended modern replacements or migration approach for:

System.Web

ASP.NET MVC 5

ASMX Web Services

Microsoft Enterprise Library

Microsoft.Web.Mvc

MvcContrib

NVelocity

Legacy TERASOLUNA Framework components

Web.config-based configuration

log4net

For ASMX services specifically:

Would Microsoft recommend migrating directly from:

ASMX / VB.NET

to:

ASP.NET Core Web API / C# / .NET 10

or is there an intermediate migration approach that Microsoft recommends?

8. Third-party components

One important third-party dependency is ExcelCreator.

Before migrating our Batch/Report applications to .NET 10, we need to determine whether the vendor library is officially compatible with modern .NET.

Does Microsoft have any recommended compatibility assessment process or tooling for identifying whether existing .NET Framework dependencies can be migrated to .NET 10?

9. Our expected migration direction

Our current technical assumption is:

Legacy Web
VB.NET + ASP.NET MVC + System.Web
          |
          | temporarily remain on .NET Framework 4.8
          |
          v

Common/Business/Batch
gradually migrate to .NET 10
          |
          v

Web Service
migrate to C# + ASP.NET Core Web API
          |
          v

Web screens
gradually migrate from VB.NET MVC
to C# + ASP.NET Core + .NET 10
          |
          v

Eventually retire .NET Framework/System.Web

Before adopting this strategy, we would like Microsoft to confirm whether this is a technically sound and supported modernization direction.

10. Requested response

We would appreciate Microsoft's official recommendations regarding:

VB.NET support and future roadmap for ASP.NET Core.

Long-term support considerations for .NET Framework 4.8.

Recommended migration strategy for large ASP.NET MVC/System.Web applications.

Whether an incremental/Strangler migration is recommended.

Recommended Microsoft technologies for running legacy ASP.NET MVC and ASP.NET Core applications side-by-side.

Recommended approach for authentication/session/state during the transition.

Recommended strategy for sharing or migrating VB.NET business logic to .NET 10.

Recommended migration path from ASMX to ASP.NET Core Web API.

Recommended approach for replacing Enterprise Library and other legacy Microsoft libraries.

Any official Microsoft documentation, reference architecture, migration guides, or tools that you recommend for this type of enterprise modernization.

This information will be used as a technical basis for selecting the migration strategy and preparing the detailed modernization plan for GMTP/F-GDC.

Thank you for your support.

Best regards, GMTP/F-GDC Development TeamDear Microsoft Support Team,

We are currently evaluating a modernization strategy for an existing enterprise system, GMTP/F-GDC, and would like to request Microsoft's official technical guidance before deciding on our migration approach.

Developer technologies | VB
0 comments No comments

2 answers

Sort by: Most helpful
  1. Danny Nguyen (WICLOUD CORPORATION) 8,540 Reputation points Microsoft External Staff Moderator
    2026-08-10T03:01:44.0933333+00:00

    Hi @PHAM VAN NAM .

    It is common for organizations running large, mature systems built on .NET Framework, ASP.NET MVC, and System.Web to face these exact modernization questions. Below is official guidance regarding VB.NET support, incremental migration strategies, and the transition path to .NET 10.

    1. VB.NET Support on .NET 10 (ASP.NET Core)

    To directly answer your primary question: VB.NET is not supported for developing ASP.NET Core applications (including Web API and MVC). Microsoft's official stance is that while VB.NET remains fully supported for Class Libraries, Console Apps, and Windows Desktop Apps (WinForms/WPF) on modern .NET, new web workloads in ASP.NET Core must be written in C# (or F#).

    Therefore, for your Web/API layer:

    • The recommended path is to rewrite the Web (ASP.NET Core MVC/Razor Pages/Blazor) and Web Service (ASP.NET Core Web API) layers using C#.
    • You can, however, retain your reusable business logic in VB.NET by migrating those specific components to .NET 10 Class Libraries. C# ASP.NET Core applications can seamlessly consume modern .NET 10 VB.NET class libraries.

    2. .NET Framework 4.8 Long-Term Support

    If you choose to temporarily keep the existing Web application on .NET Framework 4.8:

    • Support Policy: .NET Framework 4.8 is a component of the Windows operating system. Its support lifecycle is tied directly to the lifecycle of the Windows Server version it is installed on.
    • If you run it on Windows Server 2022 or Windows Server 2025, it will remain supported for the duration of that OS's lifecycle (often 10 years including extended support).
    • Risks: The primary risk is not losing support in the near term, but falling behind in performance, modern security features, and compatibility with new 3rd-party libraries which increasingly target modern .NET.

    3. Recommended Migration Strategy

    For a large enterprise system composed of many distinct screens (69 GSK screens) and batch processes, your Option D — Incremental Modernization (Strangler Fig Pattern) is highly recommended. Microsoft provides dedicated tooling and guidance for this.

    Why Option D?

    Rewriting a massive application (Option C) introduces significant risk and delays. Option D allows you to keep the system running while migrating route-by-route.

    Your overall direction mapped out in section 9 is extremely sound and aligns with Microsoft's recommended approach.

    • Side-by-Side Execution: It is fully supported to run an ASP.NET MVC app and an ASP.NET Core app side-by-side using YARP (Yet Another Reverse Proxy) or IIS URL Rewrite.
    • YARP / System.Web Adapters: Microsoft provides a specific set of tools called System.Web Adapters specifically designed for this scenario. They allow the new ASP.NET Core app to act as a proxy to the old .NET Framework app, and crucially, they enable session state sharing and authentication sharing between the two applications during the transition phase.

    4. Code Architecture and Shared Libraries

    Your proposed architecture is correct:

    
    C# ASP.NET Core (.NET 10) ---> VB.NET Business Common (.NET 10 Class Library)
    
    
    • Target Framework: Simply target .net10.0 for the VB.NET class libraries. There is no need to target .netstandard2.0 unless you explicitly still need those libraries to be consumed by the legacy .NET Framework 4.8 application at the same time. If they need to be dual-consumed during the transition, multi-targeting (<TargetFrameworks>net48;net10.0</TargetFrameworks>) is the recommended approach.

    5. Managing Legacy Technologies

    • ASMX Services: The recommended approach is to migrate them to ASP.NET Core Web API (using C#). ASMX is heavily tied to System.Web and cannot run on modern .NET.
    • Microsoft Enterprise Library & Legacy Logging: These should be replaced by the built-in modern .NET Core features (e.g., Microsoft.Extensions.Configuration and Microsoft.Extensions.Logging).
    • Web.config: Replaced by appsettings.json, Environment Variables, or Azure Key Vault in .NET Core.

    Before beginning, I strongly recommend evaluating your codebase using the .NET Upgrade Assistant. This tool can automatically analyze your Web, Batch, and Class Library projects, flag incompatible API usage (like your 3rd-party ExcelCreator if it lacks modern .NET binaries), and automatically handle parts of the project file conversion.

    Helpful Reading:

    The planned transition path is realistic, widely used in the enterprise space, and minimizes downtime. I recommend starting with the System.Web adapters and the .NET Upgrade Assistant to build a proof-of-concept on a single, low-risk GSK screen.

    If you found my response helpful or informative, I would greatly appreciate it if you could follow this guidance or provide feedback.

    Thank you.

    Was this answer helpful?

    1 person found this answer helpful.

  2. Bruce (SqlWork.com) 85,201 Reputation points
    2026-08-09T00:27:28.1766667+00:00

    First this is a user supported forum. If you want official Microsoft support for your questions, you will need to hire Microsoft Consulting services. Use your Enterprise agreement if you have one.

    Main question, VB Support:

    .net 10 supports vb.net and there is a .net 10 compiler. You can build class libraries callable from any .net 10 language. There is full support for desktop applications. While Maui, Blazor and asp.net applications can call vb.net class libraries, the application must be a C# application. Also for Blazor and asp.net, the razor template pages only support c#.

    because .net 10 applications support .netstandard 2.0 libraries, you can use create these libraries with vb.net and share between .net 4.8 and .net 10.

    The main disadvantage of using VB in .net 10, is it will not support all the features, and very few of the SDK team will provide any support if templates or code generators are required.

    There are also conversion tools for VB to C# if you want a single code base.

    .NET 4.8 support

    there is no official end of life for 4.8 and as you probably know it only receives security fixes. asp.net 4.* is a separate product from .net 4.* framework and has different support.

    .net framework support:

    https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-framework

    asp.net support:

    https://dotnet.microsoft.com/en-us/platform/support/policy/aspnet

    Migration strategy

    this with depend on your code base and your aversion to risk. AI can also help in migration.

    If you can not do full bang rewrite, Microsoft recommends a proxy solution. They also have compatibility session and authentication libraries to help this wth proxy approach:

    https://learn.microsoft.com/en-us/aspnet/core/migration/fx-to-core/?view=aspnetcore-10.0

    You can make the code easier to migrate by first updating all your libraries to .net standard 2.0. This start migration while keeping your current site running. You can also migrate libraries used by you libraries to supported versions

    • enterprise library - this is old and obsolete, but there is a community supported version for .net core.
    • MVC 5 - either asp.net MVC or Razor pages. If the current site is C# and razor pages, then just upgrade. Otherwise it is mainly a rewrite and Razor pages is probably a better choice. You can still use your current library code.
    • SOAP/asmx - SOAP is poorly supported in .net 10. if the clients can be converted to REST JSON/XML, then use webapi. if you need SOAP support then use WCF compatibility library CoreWCF.
    • Configuration. While .net 10 has compatible configuration libraries. the new files are json. You can use AI to convert.
    • System.Web - throw away and migrate to newer components. try converting current code base to OWIN for better compatibility. Any use of HttpContext.Current must be rewritten to use passed object instances (probably via DI).
    • Legacy libraries. Pick a modern replacement. Consider migration of the current code to the newer libraries with the help of AI.

    Modern Architecture

    This will depend on how much rewrite vs migrate you want to do to your code base.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.