I am planning to migrate a set of large-scale applications built on .NET Framework v4.8.1 (WebForms) to .NET 8 (MVC or Blazor/Razor). Each project includes over 600 ASPX pages, and we have multiple such projects of similar size and complexity.

Tarun Kushwaha 0 Reputation points
2024-12-03T05:43:55.47+00:00

I am looking for guidance and expertise on the following:

  1. Approach and Tools:
    • What is the best approach to migrate such large projects?
    • Are there tools that can automate parts of the migration, or would it require manual effort?
    • Should we work with specialized service providers, or are there frameworks to assist in this process?
    • Should we go for a direct migration to .NET 8 or take a phased approach through .NET 5?
  2. Architecture and Changes:
    • How do you address the architectural changes between .NET Framework and .NET Core/8 during migration?
    • What should be considered for optimizing performance and scalability in the new version?
  3. Timeline:
    • How long would such a migration typically take for a project of this size?
Developer technologies | ASP.NET | ASP.NET Core
Developer technologies | .NET | Other
Developer technologies | ASP.NET | Other
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. SurferOnWww 4,721 Reputation points
    2024-12-03T07:37:01.03+00:00

    If you consider only support period, I suggest that you stay on .NET Framework 4.8. See the following document:

    .NET Support Policy

    "As long as it's installed on a supported version of Windows, .NET Framework 4.8 will continue to also be supported." while the support of .NET 8 will end on November 10, 2026.

    0 comments No comments

  2. SurferOnWww 4,721 Reputation points
    2024-12-03T09:03:25.5566667+00:00

    This answer has been deleted because of duplication.

    0 comments No comments

  3. Bruce (SqlWork.com) 78,311 Reputation points Volunteer Moderator
    2024-12-03T17:08:18.8+00:00

    this is a major task. 6 months to a year would be typical migration, but it depends on the complexity. also is it a straight port or will there be architecture changes (beyond just the .aspx pages). you must lock down requirements and changes during the migration or it can take years or just fail.

    the migration tools are pretty much limited to library projects. you will need to recode the .aspx page. if you used vb, then you can find vb to c# porting tools. although vb project libraries are supported you may want to port to C# to use a common language.

    You probably want to pick between Razor pages and Blazor. Blazor is most similar to webforms architecturally as it uses a component tree and events, but it's a SPA and a 600 page SPA is not typical. You should review the Blazor design, architecture and hosting requirements. Razor pages is probably a better pick.

    As .net 5 is no more compatible then .net 8, you should just use the lastest version, probably .net 9. In a year you will need to upgrade to .net 10, no matter which you pick.

    you can use Microsoft's migration approach when you port the site a little at time. this uses a proxy, so both the old and new site look like one:

    https://learn.microsoft.com/en-us/aspnet/core/migration/inc/start?view=aspnetcore-9.0

    before you start you can clean up your code:

    • convert all the library projects you can to .netstandard 2.0.
    • if a library uses HttpContext.Current, you need to change to passing the context object
    • if you use WCF decide on your migration path. you can use webapi, or convert to gRPC.
    • .net core wants HttpClient calls to be async. plan on a migration path.
    • determine any nuget package replacements required.
    • move application logic out of the code behind to libraries.

Your answer

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