Before we start with why we should migrate from the legacy .NET Framework to .NET Core, let’s discuss what these frameworks are and their brief history.
.NET Framework is a software programming framework supporting languages like C#, F#, VB.NET, etc. The first version of .NET Framework (version 1.0) was released on February 13, 2002. Since then there have been multiple releases and many success stories around it. The last version 4.8 was released on April 18, 2019, and this is the last feature version. Going forward there will not be any feature upgrades to .NET Framework.
The reason for discontinuing any further development in the .NET Framework is the birth and tremendous success of .NET Core.
A brief history of .NET Core
.NET Core is the open-source and cross-platform successor of .NET Framework. The .NET Framework can run only in Windows, whereas .NET Core is built to run on every possible platform, including but not limited to Linux, Windows, macOS and Raspberry Pi to name a few.
.NET Core is licensed under the open-source MIT License. The first version of .NET Core was released on June 27, 2016. Since then six versions of .NET Core have been released, with version 3.1 being the latest version. As an open-source framework, it provides a faster and better opportunity for innovation.
.NET Core is being adopted rapidly. According to a StackOverflow survey conducted in 2019 .NET Core tops the most loved Framework, Libraries, and Tools category.
In the industry, organizations are converting their .NET Framework applications to .NET Core to take advantage of all the features it supports and improvements it brings. But before going into the advantages of the .NET Core, let’s consider the major drawbacks of remaining with legacy .NET Frameworks.
Challenges with .NET Framework
.NET Framework 4.8 is the last major release version of .NET Framework. Going forward there will not be any new features implemented in .NET Framework. Only bug fixes and security patches will be provided. This means there will no longer be any innovation in the .NET Framework. Microsoft has assured that it will continue to support the .NET Framework, but that does not mean making it compatible with new and emerging technologies.
For example, if there is a new managed distributed database announced by AWS, it will not be guaranteed to have a NuGet package supporting the .NET Framework, whereas it will definitely have support for .NET Core. Also, the new language changes in C# will only be available in .NET Core. Similarly, other innovations in Web (ASP.NET Core), as well as desktop frameworks (WPF), will happen only in .NET Core.
The cost of legacy systems
.NET is not as efficient a coding environment as .NET Core, and does not allow developers to take advantage of the latest coding tools to quickly and efficiently address issues. This means that requests tend to take longer to address, and are therefore far more expensive to undertake, than were the same requests addressed in the newer framework.
The only option for running ASP.NET Web applications is in an IIS Server running in a Windows Machine. Even if one does self-hosting of the ASP.NET Web application, you still have to have it running inside a Windows Server. The cost of a Windows Server license is high compared to a Linux Server.
Given the fact that Microsoft has a complete focus on .NET Core and does not intend to make any feature change to .NET Framework 4.8, there is always a risk of security running in .NET Framework versions. Microsoft mentions that they will continue to provide security patches to .NET Framework 4.8, but .NET Core always has the advantage given its open-source nature and being actively developed.
Advantages of .NET Core
ASP.NET Core Web Application is much faster than legacy ASP.NET Web Application. You can expect your application to perform up to 75% faster than it currently does.
ASP.NET Core Web Application overcomes many of the development negatives and shortcomings of the previous version, allowing full utilization of the latest functional tools. New features will be able to be added up to 50% faster than the legacy .NET version. Change requests and bug fixes will also be able to addressed significantly faster, and hence more cost-effectively.
There are two types of security to consider. One is how vulnerable .NET Core is itself. On that front, since .NET Core applications can run on Linux servers, they inherently get all security advantages of running in a Linux server.
The second aspect is securing an ASP.NET Core Web Application. For that, there are plenty of options available, including Custom Authentication mechanism (using Authentication Handlers), JWT (JSON Web Token) Authentication, OAuth. And finally, third-party authentication providers, like Google, Facebook, Etc. And all these can be built with few lines of code and existing Nuget packages.
There are many, many solid web applications on the web currently running on various versions of the .NET framework, and Microsoft will be mindful of them needing to remain stable and so forth, so there is no urgent need for migration. However, the web and associated technologies are constantly evolving, and migrating your application to .Net Core will ensure your application keeps pace with this evolution, and is able to take advantage of emerging enhancement opportunities.