.NET Core Overview
.NET Core is a new version of .NET Framework, which is a free, open-source, general-purpose development platform maintained by Microsoft. It is a cross-platform framework that runs on Windows, macOS, and Linux operating systems.
.NET Core Framework can be used to build different types of applications such as mobile, desktop, web, cloud, IoT, machine learning, microservices, game, etc.
.NET Core is written from scratch to make it modular, lightweight, fast, and cross-platform Framework. It includes the core features that are required to run a basic .NET Core app. Other features are provided as NuGet packages, which you can add it in your application as needed. In this way, the .NET Core application speed up the performance, reduce the memory footprint and becomes easy to maintain.
Why .NET Core?
There are some limitations with the .NET Framework. For example, it only runs on the Windows platform. Also, you need to use different .NET APIs for different Windows devices such as Windows Desktop, Windows Store, Windows Phone, and Web applications. In addition to this, the .NET Framework is a machine-wide framework. Any changes made to it affect all applications taking a dependency on it.
Today, it's common to have an application that runs across devices; a backend on the web server, admin front-end on windows desktop, web, and mobile apps for consumers. So, there is a need for a single framework that works everywhere. So, considering this, Microsoft created .NET Core. The main objective of .NET Core is to make .NET Framework open-source, cross-platform compatible that can be used in a wide variety of verticals, from the data center to touch-based devices.
.NET Core Version History
Version | Visual Studio | Release Date | End of Support |
---|---|---|---|
.NET 7 - Latest Version | Visual Studio 2022 v17.4 | Nov 8, 2022 | |
.NET 6 (LTS) | Visual Studio 2022 | Nov 9, 2021 | Nov 12, 2024 |
.NET 5 | Visual Studio 2019 | Nov 10, 2020 | May 10, 2022 |
.NET Core 3.1 (LTS) | Visual Studio 2019 | Dec 3, 2019 | Dec 13, 2022 |
.NET Core 3.0 | Visual Studio 2019 | Sep 23, 2019 | Mar 3, 2020 |
.NET Core 2.1 (LTS) | Visual Studio 2017, 2019 | May 30, 2018 | Aug 21, 2021 |
.NET Core 2.0 | Visual Studio 2017, 2019 | Aug 14, 2017 | Oct 1, 2018 |
.NET Core 1.0 | Visual Studio 2017 | Jun 27, 2016 | Jun 27, 2019 |
The name .NET Core was changed after .NET Core 3.1. The next version of .NET Core after version 3.1 was named .NET 5. The latest version of .NET Core is .NET 7 as of this writing.
.NET 5 unifies the previously separate .NET Core, .NET Framework, and Xamarin platforms, making it easier for developers to use a single platform for various application types.
The following figure demonstrates the path of .NET and .NET Core frameworks:
.NET Core Characteristics
Open-source Framework: .NET Core is an open-source framework maintained by Microsoft and available on GitHub under MIT and Apache 2 licenses. It is a .NET Foundation project.
You can view, download, or contribute to the source code using the following GitHub repositories:
- The .NET Home Repository is a starting point to learn about and engage in .NET and .NET open source projects.
- The .NET Open Source Developer Projects maintained list showcases .NET open source developer projects.
- The .NET Core Framework repository.
- Track what is being built via themesof.net.
Cross-platform: .NET Core runs on Windows, macOS, and Linux operating systems. There are different runtime for each operating system that executes the code and generates the same output.
Consistent across Architectures: Execute the code with the same behavior in different instruction set architectures, including x64, x86, and ARM.
Wide-range of Applications: Various types of applications can be developed and run on .NET Core platform such as mobile, desktop, web, cloud, IoT, machine learning, microservices, game, etc.
Supports Multiple Languages: You can use C#, F#, and Visual Basic programming languages to develop .NET Core applications. You can use your favorite IDE, including Visual Studio 2017/2019, Visual Studio Code, Sublime Text, Vim, etc.
Modular Architecture: .NET Core supports modular architecture approach using NuGet packages. There are different NuGet packages for various features that can be added to the .NET Core project as needed. Even the .NET Core library is provided as a NuGet package. The NuGet package for the default .NET Core application model is Microsoft.NETCore.App.
This way, it reduces the memory footprint, speeds up the performance, and easy to maintain.
CLI Tools: .NET Core includes CLI tools (Command-line interface) for development and continuous-integration.
Flexible Deployment: .NET Core application can be deployed user-wide or system-wide or with Docker Containers.
Compatibility: Compatible with .NET Framework and Mono APIs by using .NET Standard specification.
High Performance: .NET Core was optimized for performance, with features like Just-In-Time (JIT) compilation, which translated code into machine instructions at runtime for better execution speed.
Unified Platform: After .NET Core 3.1, Microsoft unified the .NET platforms, bringing together .NET Core, .NET Framework, and Xamarin into a single platform called ".NET" starting from .NET 5. This unified platform aimed to provide consistent APIs and runtime behavior across different application types.
Useful Links
- Get the help on .NET Core/NET types on .NET Core API Reference Docs.
- Download .NET runtime and SDK from https://dotnet.microsoft.com/en-us/download/dotnet