.NET Core overview
.NET Core has the following characteristics:
- Cross platform: Runs on Windows, macOS, and Linux operating systems.
- Open source: The .NET Core framework is open source, using MIT and Apache 2 licenses. .NET Core is a .NET Foundation project.
- Modern: It implements modern paradigms like asynchronous programming, no-copy patterns using structs, and resource governance for containers.
- Performance: Delivers high performance with features like hardware intrinsics, tiered compilation, and Span<T>.
- Consistent across environments: Runs your code with the same behavior on multiple operating systems and architectures, including x64, x86, and ARM.
- Command-line tools: Includes easy-to-use command-line tools that can be used for local development and for continuous integration.
- Flexible deployment: You can include .NET Core in your app or install it side-by-side (user-wide or system-wide installations). Can be used with Docker containers.
The C#, Visual Basic, and F# languages can be used to write applications and libraries for .NET Core. These languages can be used in your favorite text editor or Integrated Development Environment (IDE), including:
.NET Core exposes frameworks for building any kind of app:
- Cloud apps with ASP.NET Core
- Mobile apps with Xamarin
- IoT apps with System.Device.GPIO
- Windows client apps with WPF and Windows Forms
- Machine learning ML.NET
Many APIs are included that satisfy common needs:
- Primitive types, such as System.Boolean and System.Int32.
- Collections, such as System.Collections.Generic.List<T> and System.Collections.Generic.Dictionary<TKey,TValue>.
- Utility types, such as System.Net.Http.HttpClient, and System.IO.FileStream.
- Data types, such as System.Data.DataSet, and System.Data.Entity.DbSet.
- High-performance types, such as System.Span<T>, System.Numerics.Vector, and Pipelines.
.NET Core provides compatibility with .NET Framework and Mono APIs by implementing the .NET Standard specification.
.NET Core is composed of the following parts:
- The .NET Core runtime, which provides a type system, assembly loading, a garbage collector, native interop, and other basic services. .NET Core framework libraries provide primitive data types, app composition types, and fundamental utilities.
- The ASP.NET Core runtime, which provides a framework for building modern, cloud-based, internet-connected apps, such as web apps, IoT apps, and mobile backends.
- The .NET Core SDK and language compilers (Roslyn and F#) that enable the .NET Core developer experience.
- The dotnet command, which is used to launch .NET Core apps and CLI commands. It selects and hosts the runtime, provides an assembly loading policy, and launches apps and tools.
.NET Core is an open-source, general-purpose development platform. You can create .NET Core apps for Windows, macOS, and Linux for x64, x86, ARM32, and ARM64 processors. Frameworks and APIs are provided for cloud, IoT, client UI, and machine learning.
.NET Core is supported by Microsoft on Windows, macOS, and Linux. It's updated for security and quality regularly (the second Tuesday of each month).
.NET Core binary distributions from Microsoft are built and tested on Microsoft-maintained servers in Azure and follow Microsoft engineering and security practices.
Red Hat supports .NET Core on Red Hat Enterprise Linux (RHEL). Red Hat builds .NET Core from source and makes it available in the Red Hat Software Collections. Red Hat and Microsoft collaborate to ensure that .NET Core works well on RHEL.
Tizen supports .NET Core on Tizen platforms.