News

Microsoft: Move from Traditional ASP.NET to 'Core' Requires 'Heavy Lifting'

There are plenty of reasons to move traditional ASP.NET web apps -- part of the old .NET Framework -- to the new cross-platform direction, ASP.NET Core, but beware it will require some "heavy lifting," Microsoft says.

"The process of migrating from ASP.NET to ASP.NET Core is doable but not without some heavy lifting and understanding the complexities of the differences in the new programming model," said Mike Finley, app dev manager, in a Jan. 20 blog post. "I do believe the change is worth the time if you are looking at moving to the cloud and want to use Azure WebApps, containers or LINUX OS as your host."

More precisely, in fleshing out the cloud/container/Linux considerations, Finley listed these reasons developers may want to move:

  • Cross-platform needs
  • Targeting microservices
  • Using Docker containers
  • Require high-performance and scalable systems
  • Require side-by-side .NET versions per application

Finley's post was meant to help developers understand the aforementioned programming model complexities involved, and he focused on three migration steps for upgrading web applications using MVC and Entity Framework:

  • Model/Data Layer: Entity Framework to EF Core Migration Strategy
  • Controller/Business Layer: .NET to .NET Core Migration Strategy
  • View/UI: ASP.NET to ASP.NET Core Migration Strategy

Regarding that first item, Microsoft developers have had some trouble in moving Entity Framework functionality to the new Core platform, especially with LINQ, and Finley warned developers to be aware of missing functionality.

"Make sure that EF Core has all the features you need to use in your application," he said, pointing to a feature comparison table. "If any required features are missing, ensure that you can compensate for the lack of these features before porting to EF Core."

That EF Core/EF 6 feature comparison page does show many features missing from EF Core -- touching upon model creation, querying data, saving data and so on, but also shows many EF Core features not found in EF 6, such as support for Jet (Microsoft Access), Cosmos DB and in-memory testing functionality.

Moving beyond the data layer, Finley pointed out that with the view/UI layer, the ASP.NET to ASP.NET Core Migration Strategy "is more of a port than migration." Among many changes in ASP.NET Core, Findley included this: "ASP.NET Core projects offer developers the flexibility of targeting .NET Core, .NET Framework, or both however targeting .NET Core allows you to eliminate numerous explicit package references thanks to the ASP.NET Core metapackage feature."

On the server side of things where the controller/business layer resides, Finley summarized the migration considerations that are dependent upon what a developer wishes to accomplish:

  • Use .NET Core for your server application when:
    • You have cross-platform needs.
    • You are targeting microservices.
    • You are using Docker containers.
    • You need high-performance and scalable systems.
    • You need side-by-side .NET versions per application.
  • Use .NET Framework for your server application when:
    • Your app currently uses .NET Framework (recommendation is to extend instead of migrating).
    • Your app uses third-party .NET libraries or NuGet packages not available for .NET Core.
    • Your app uses .NET technologies that aren't available for .NET Core.
    • Your app uses a platform that doesn't support .NET Core. Windows, macOS, and Linux support .NET Core.

In addition to the aforementioned EF Core/EF 6 comparison table, Finley pointed to additional guidance and documentation including:

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Microsoft Revamps Fledgling AutoGen Framework for Agentic AI

    Only at v0.4, Microsoft's AutoGen framework for agentic AI -- the hottest new trend in AI development -- has already undergone a complete revamp, going to an asynchronous, event-driven architecture.

  • IDE Irony: Coding Errors Cause 'Critical' Vulnerability in Visual Studio

    In a larger-than-normal Patch Tuesday, Microsoft warned of a "critical" vulnerability in Visual Studio that should be fixed immediately if automatic patching isn't enabled, ironically caused by coding errors.

  • Building Blazor Applications

    A trio of Blazor experts will conduct a full-day workshop for devs to learn everything about the tech a a March developer conference in Las Vegas keynoted by Microsoft execs and featuring many Microsoft devs.

  • Gradient Boosting Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the gradient boosting regression technique, where the goal is to predict a single numeric value. Compared to existing library implementations of gradient boosting regression, a from-scratch implementation allows much easier customization and integration with other .NET systems.

  • Microsoft Execs to Tackle AI and Cloud in Dev Conference Keynotes

    AI unsurprisingly is all over keynotes that Microsoft execs will helm to kick off the Visual Studio Live! developer conference in Las Vegas, March 10-14, which the company described as "a must-attend event."

Subscribe on YouTube