.NET Core is a modular, cross-platform, and open source software development framework that is used to build Windows, Web, and Mobile applications for Windows, Linux and OS X platforms.
.NET Framework / .NET Core / .NET Standard
The .NET Framework is a development platform developed by Microsoft for building apps for web, Windows, Windows Phone, Windows Server, and Microsoft Azure. It consists of the common language runtime (CLR) and the .NET Framework class library, which includes a broad range of functionality and support for many industry standards. It runs primarily on Microsoft Windows. The first version of .NET Framework was released on 13 February 2002.
.NET Core is an open-source, general-purpose development platform maintained by Microsoft and the .NET community on GitHub. It’s cross-platform (supporting Windows, macOS, and Linux) and can be used to build device, cloud, and IoT applications. .NET Core 1.0 was released on 27 June 2016.
The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations. The motivation behind the .NET Standard is establishing greater uniformity in the .NET ecosystem. When Microsoft shipped .NET Core 1.0, they also introduced .NET Standard.
.NET Core characteristics:
- Cross-platform: Runs on Windows, macOS and Linux operating systems.
- Consistent across architectures: Runs your code with the same behavior on multiple architectures, including x64, x86, and ARM.
- Command-line tools: Includes easy-to-use command-line tools that can be used for local development and in continuous-integration scenarios.
- Flexible deployment: Can be included in your app or installed side-by-side user- or machine-wide. Can be used with Docker containers.
- Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via .NET Standard.
- Open source: The .NET Core platform is open source, using MIT and Apache 2 licenses. .NET Core is a .NET Foundation project.
- Supported by Microsoft: .NET Core is supported by Microsoft, per .NET Core Support.
.NET Core components:
.NET Core version history:
The versions of .NET Core are as below:
You can download the latest version from here.
.NET Core language support:
C#, Visual Basic, and F# languages can be used to write applications and libraries for .NET Core.
The ways of developing .NET Core apps are as follows:
- Command line(Windows/Linux/macOS)
- Visual Studio(Windows)
- Visual Studio for Mac(macOS)
- Visual Studio Code(Windows/Linux/macOS)
When to use .NET Core and .Net Framework?
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.
Future of .NET
Microsoft has just announced .NET 5, which will be available in 2020. .NET 5 will replace .NET Core and is the future of .NET Framework and .NET Core. .NET 5 will not support ASP.NET Web Forms, WCF, or WWF. UWP also does not have a major role to play in the future.