If you are a developer or you are learning .NET, you are likely to have come across terms such as .NET Framework, .NET Core, and .NET Standard. In this post, I will talk about the difference between .NET Framework and .NET Core.
What is .NET Framework?
The .NET Framework is an application development platform developed by Microsoft. The first version of .NET was released in 2001. With .NET, we can desktop and web applications for Windows.
.NET supports several languages for application development. The most popular and widely used programming language in .Net is C#.
The current version of Dot NET Framework is 4.8. No newer versions of the .NET Framework will be released.
Drawbacks of Dot NET Framework
At the time of writing this post, .NET Framework is a 20-year-old technology that has undergone many changes over the years. However, it could not keep up with the modern demands of web and cloud development.
It was designed for desktop and web applications on Windows, not for cross-platform and scalable applications on the cloud. It also became bloated and complex as new features were added.
Microsoft recognized the need for a new platform that would address these challenges and offer better performance and flexibility. That's how .NET Core was born.
What is .NET Core?
.NET Core is a modern and cross-platform application development framework. Id the successor of .NET Framework.
Unlike the .NET Framework, .NET Core is platform-independent. This means that with .NET core, we can develop applications that will run on any platform including Windows and Linux.
.NET Core is optimized for speed and efficiency. It uses less memory and CPU resources than .NET Framework.
Application Development With .NET
The .NET Framework and .NET Core provide several frameworks to develop applications for Desktop, Web, Mobile, and Cloud.
Available in .NET Framework And .NET Core
If you developed your application in the .NET framework using any of the following frameworks, you can easily update your applications to .NET Core.
- Windows Forms - Windows Forms is one of the most popular and oldest ways to develop desktop applications.
- WPF - It is a new UI framework developed by Microsoft. Unlike Windows Forms, WPF separates the UI from business logic.
- ASP .NET (MVC and Web API) - We can use ASP .NET to develop web applications in .NET Framework and .NET Core. ASP .NET MVC and Web API are unified in .NET Core.
Available in .NET Framework Only
The following frameworks are available only in .NET Framework. These frameworks are not supported in .NET Core.
If you developed your application using any of the following frameworks, you have to rewrite your applications to upgrade to .NET Core.
- ASP .NET Web Form - This framework was used to develop event-driven web applications using the .NET Framework. The first version of this framework was released in 2002 and it was a revolutionary technology at the time of its release.
- WCF - The Windows Communication Foundation is runtime and a set of APIs in the .NET Framework for building connected, service-oriented applications. No WCF equivalent is available in .NET Core.
Available in .NET Core Only
The following frameworks are available only in .NET Core. These frameworks are not supported in .NET Framework.
- Razor Pages - We can consider Razor Pages as a replacement for ASP .NET Web Form. The new Razor Pages framework solves several problems that developers will face while using the Web Form framework.
What will happen to .NET Framework?
In the future, .NET Framework will be replaced by .NET Core. Security fixes and bug fixes will be provided to the old .NET Framework. No new features will be added to the framework.
Should I learn .NET Framework?
.NET Core is the future of .NET. If you are new to .NET or you're planning to learn .NET, I recommend you to learn .NET Core instead of .NET Framework. No new versions of the .NET Framework will be released by Microsoft.
What should you use?
Use .NET Framework if the following applies to you.
- You are working with legacy .NET applications.
- .NET Core implementation for the framework you are using is unavailable. Eg Web Form app.
- You are not ready to learn.
- The libraries you are using are not available in .NET Core.
Use .NET Core if the following applies to you.
- You are new to .NET.
- Want a modern experience.
- You want cross-platform support.
- You want better performance and scalability.
You have learned the key differences between .NET Framework and .NET Core in this post. You have also seen why .NET Core is the future of .NET development. If you want to stay ahead of the curve and build modern applications with .NET, you should start learning .NET Core today.