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. A lot has changed since the release of the .NET Framework.
Web applications became more popular than desktop applications, cloud computing became more popular and developers started to use cross-platform compatible languages and frameworks.
Although the DOT NET Framework evolved to meet the modern requirements. As a result, the framework became bulky, and it missed several important features for large-scale application development.
Microsoft realized that the .NET framework should be updated to meet the new requirements. This paved path to the development of .NET Core.
What is .NET Core?
.NET Core is a modern and cross-platform application development framework. It is the future of the .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 also faster and it provides high performance and scalability.
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 is 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 available. 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.
- Your want cross-platform support.
- You want better performance and scalability.
In this post, we talked about the difference between .NET Framework and .NET core. In the future, we will be developing all applications using .NET Core. Therefore, if you are planning to learn .NET, learn .NET Core.