Migration From .NET Framework to .NET latest version – Sharing My Experience

Most applications developed using the .NET Framework can be migrated to .NET Core or .NET 5 plus with some adjustments. However, there are certain scenarios where migration may be challenging or not feasible without significant changes.

There are different versions of .NET over time:

ASP NET Framework (1.0 to 4.8)

NET Standard (1.0 to 2.1)

ASP NET Core (1.0 to 3.1)

Now-

.NET Standard

.NET (5.0 to … …)

Why .NET Standard?

If you want to share code between the .NET Framework and any other .NET implementation, such as .NET Core, your library should target .NET Standard 2.0.

Note: Microsoft has said that no new versions of .NET Standard will be released, but .NET 5 and all later versions will continue to support .NET Standard 2.1 and earlier.

Why .NET?   

  • Cross-platform, flexible deployment
  • Better Performance
  • So on, because the platform is going forward with every release

Comparison of .NET vs .NET Standard: https://learn.microsoft.com/en-us/dotnet/stan

Migration Steps

A. Application Analysis

The first thing to remember before migrating any application which is in the .NET framework to .NET 5 is  “Application Analysis”. I will share my experience/knowledge on migrations on this.

1. ASP.NET WebForms Applications:

  •  ASP.NET WebForms in .NET Framework is not directly compatible with .NET Core.
  • Migration of WebForms applications often involves rewriting parts of the application using modern web technologies supported by .NET Core or .NET 5+.

2. Applications Reliant on .NET Framework Libraries:

  • If an application heavily relies on third-party libraries or APIs that are only available for the .NET Framework, migration can be complex.
  • Some libraries or components may not have equivalents or may require re-implementation for .NET Core.

3. Deployment Environment

  •  The environment in which an application is deployed is crucial, as it can affect the compatibility of libraries such as Entity Framework. For instance, some libraries may work well on Windows but not on Linux due to platform-specific dependencies or optimizations.

4. ASP.NET MVC application

  •  This type of application has a relatively smoother migration path to newer versions such as .NET 5+. (Considering the application has well-written code). But be prepared there might be code changes.
  • Migration typically involves updating dependencies, packages, and configurations to align with the target framework’s conventions.
  • While some code adjustments may be necessary, the migration process generally focuses on enhancing compatibility and leveraging modern features without extensive rewrites.

Check List for Application Analysis from my point of view.  

  • List of Nugets or libraries compatible with .NET 5+ and deployment environment.
  • List of Nugets or libraries incompatible with .NET 5+  and deployment environment.
  • List of database providers and data access technologies used in the application.
  • List of authentication and authorization techniques used in the application.
  • Enough knowledge of the application domain to test the application.
  • For view part of the MVC application,
  •   Ensure that model binding mechanisms and view model structures are compatible with ASP.NET Core MVC and update as necessary.
  •  Ensure partial views and layout structures are compatible with ASP.NET Core MVC, making adjustments as needed.
  • List the use of JavaScript libraries
  • Review the client-side scripting code, AJAX calls, and JavaScript functionalities embedded in your views.

B. Application Migration

  • Choose the Correct Version: Selecting the right version is crucial. While upgrading to .NET 5+ is generally smooth, it’s essential to consider factors such as long-term support.
  • NET Upgrade Assistant Visual Studio Extension: Because moving to ASP.NET Core isn’t as simple as a single click, Microsoft offers tools like the .NET Upgrade Assistant for automating some steps. However, manual tasks are involved, like adjusting code to fit the new framework’s structure and libraries.
  • Migration Approaches: There are many approaches to upgrading the .NET framework app to the .NET core app. According to my experience, the best way is to achieve this through the “Side-by-Side Incremental” technique taking the help of a .NET upgrade assistant.

In conclusion, migrating from .NET Framework to .NET 5+ involves a combination of detailed application analysis, careful planning, and attention to project architecture. Proper consideration of your project’s architecture is vital, as it can significantly impact the migration process and outcome. Utilizing the right tools and strategies will ensure a successful migration and leverage the benefits of the latest .NET technologies.

Resources Link:

Migrating from ASP.NET to ASP.NET Core: https://www.youtube.com/watch?v=zHgYDZK3MrA

Legacy ASP.NET Projects to ASP.NET Core Incrementally with YARP : https://www.youtube.com/watch?v=XQyCgwB_szI

Migrate from framework to core with “System.Web” Adapters: https://www.youtube.com/watch?v=l_PKg_VozFc

Migrating from EF6 to EF Core: https://www.mikee.se/posts/migrating_from_ef6_to_ef_core

Migrating EDMX projects to Entity Framework Core: https://www.youtube.com/watch?v=rRhBX2653Sg&t=1s


Leave a Reply

Your email address will not be published. Required fields are marked *