What Is .NET Core

.NET Core is a free, open-source framework for building modern, scalable, and high-performance cross-platform software applications.

.NET Core is a general-purpose framework that may be used to build software applications for Windows, Linux, and MacOS. Unlike other software frameworks, .NET Core is the most versatile framework and can be used to build all kinds of software including Web applications, Mobile apps, Desktop applications, Cloud services, Microservices, APIs, Games, and IoT applications. Unlike other frameworks, .NET Core is not limited to a single programming language and supports C#, VB.NET, F#, XAML, and TypeScript. These programming languages are open source and managed by independent communities.

.NET Core offers the most advanced, mature, and extensive class libraries, common APIs, multi-language support, and tools. Visual Studio 2019 and Visual Studio Core are the most advanced and modern developer IDEs that make .NET Core one of the most productive platforms for developers.

Note: Microsoft has recently announced .NET 5, that is the future of .NET Core. In the future, .NET Core will be renamed as .NET. The next version of .NET Core will be .NET 5.0. Read more here – What is the Future of .NET.  

History of .NET Core

.NET Core, developed by Microsoft, is currently managed under the .NET Foundation, a non-profit open source organization. .NET Core is written in C# and C++ and licensed under MIT license. The first version, .NET Core 1.0, was released in 2016 with limited functionality. .NET Core 2.0 was released on August 14, 2017. Two key frameworks released in this release were ASP.NET Core 2.0 and Entity Framework Core 2.0. The next stable versions, .NET Core 2.1 and 2.2, were released in May and Dec 2018. The current version of .NET Core is 3.0.0, which is in Preview 3, and was announced on March 6, 2019.

The following table summarizes the major milestones of .NET Core:

Version Release date Key features/products
.NET Core 1.0 6/27/2016 The initial release of .NET Core supported by Visual Studio 2015 Update 3.
.NET Core 1.1.1 3/7/2017 .NET Core Tools 1.0 supported by Visual Studio 2017
.NET Core 2.0 8/14/2017 Visual Studio 2017 15.3, ASP.NET Core 2.0, Entity Framework 2.0
.NET Core 2.1 5/30/2018 ASP.NET Core 2.1, EF Core 2.1
.NET Core 2.2 12/4/2018 ASP.NET Core 2.2, EF Core 2.2
.NET Core 3.0 Preview 3 3/6/2019 Support of ASP.NET Core 3.0, Entity Framework Core 3.0, UWP, Windows Forms, WPF via Visual Studio 2019.


Characteristics of .NET Core

Key characteristics of .NET Core include open source, cross-platform, modern, flexible, lightweight, fast, friendly, shareable, and built for future software development.

.NET Core is Free and Open Source.

The .NET Core platform is free and open source. .NET Core source code project is available on Github. Any developer can get involved in .NET Core development. There are thousands of active developers participating in .NET Core development who are improving features, adding new features, and fixing bugs and issues.

.NET Core is managed by an independent and non-profit organization called the .NET Foundation. More than 60,000 developers and 3,700 companies are contributing to the .NET ecosystem.

.NET Core is free and licensed under MIT and Apache licenses.

Learn more and download .NET Core on Github.

.NET Core is Cross-platform.

.NET Core supports and runs on Windows, macOS, and Linux operating systems. .NET Core is consistent across architecture including x64, x86, and ARM. The same assemblies and libraries can be imported and used on multiple platforms. The assemblies and libraries are built using one of the .NET languages, C#, VB.NET, or F#.

.NET Core is Sharable.

.NET Core uses one consistent API model written in .NET Standard that is common to all .NET applications. The same API or library can be used with multiple platforms in multiple languages.

.NET Core is Modern.

Unlike some older frameworks, .NET Core is designed to solve today’s modern needs, including being mobile friendly, build once run it everywhere, scalable, and high performance. .NET Core is designed to build applications that target all kind of devices, including IoTs and gaming consoles.

.NET supports modern language constructs with the help of C# version 8, like object-oriented and modular programming, generics, collections, lambdas, Language Integrated Query (LINQ), and asynchronous programming which makes developers productive. Learn more about C# 7 and C# 8 features here,

Visual Studio 2019 and Visual Studio Code are the two most advanced and modern developer IDEs in the world. Both IDEs support today’s modern needs and are focused on cleanness, speed, and productivity. Learn more about Visual Studio 2019 features here: Visual Studio 2019 New Features.

.NET Core is Fast.

.NET Core 3.0 is fast. Compared to the .NET Framework and .NET Core 2.2 and previous versions, .NET Core 3.0 is blazing fast. .NET Core is much faster than other server-side frameworks such as Java Servlet and Node.js.

What Is .NET Core

According to a report published by TechEmpowers, .NET Core is much faster than any other framework. TechEmpower benchmark compares Web application frameworks for tasks such as database access for a single query, multiple queries, fortunes, data updates, plaintext, and JSON serialization.

.NET Core is Lightweight.

.NET Core is lightweight. .NET Core can be included in your app or installed side-by-side user, machine-wide, or on a server. The .NET Core can be deployed in Docker containers.

.NET Core is Friendly.

.NET Core is compatible with .NET Framework, Xamarin, and Mono, via .NET Standard. .NET Core also supports working with various popular Web frameworks and libraries such as React, Angular, and JavaScript. TypeScript is one of the key components of the .NET Core and Visual Studio ecosystem.

What types of apps can we build using .NET Core?

.NET Core is a general-purpose software development framework. It allows developers to build all kinds of software including Web, Desktop, Mobile, Cloud, Gaming, Internet of Things and more.

What Is .NET Core

The .NET Core is better suited for cross-platform needs. .NET Core apps are supported on Windows, Linux, and macOS. Microsoft’s popular open source code editor, Visual Studio Code, is not supported on Linux and macOS. VS Code supports the modern needs of code editors including IntelliSense and debugging. Most third-party editors, such as Sublime, Emacs, and VI, work with .NET Core.

Web Applications

ASP.NET Core is a core component of .NET Core ecosystem. ASP.NET Core is a framework for building web pages. ASP.NET Core is based on MVC architecture and provides common libraries to build the Web. Get started with ASP.NET Core

Razor is a new framework for building dynamic web pages using C# and TypeScript. Razor is a game-changing technology that allows C# developers to build Web apps in C#. If you want to learn more about Razor, start here.

Mobile

Mobile development is a key offering of .NET Core. Xamarin is a set of tools and libraries for building cross-platform mobile apps using C#. Xamarin allows developers to build native apps for iOS, Android, Windows, and macOS on a shared .NET codebase.

Add more on Xamarin.

Desktop Applications

.NET Core provides various frameworks and tools to build Desktop applications. Windows Forms, WPF, UWP, and Xamarin are four major frameworks to build desktop applications. .NET Core also supports interoperability between these frameworks.

Windows Forms is a technology to build Windows desktop applications. Windows Forms was one of the first components of .NET Framework.

WPF (Windows Presentation Foundation) is a newer technology to build Windows desktop applications. WPF was released as a part of the .NET Framework version

Learn more about WPF here.

UWP (Universal Windows Presentation) is a newer technology and was released after Windows 8. Today, UWP has matured. UWP uses XAML for the presentation layer (UI) and C# as the backend programming.

Microservices and Containers

Microservices are a new design pattern that allows developers to build small modules of software services that can communicate with each other using well-defined contracts. Microservices make it easier to develop, test, and deploy isolated parts of your application. Once deployed, each microservice can be independently scaled as needed. Microservices architecture is supported in .NET Core, which allows cross-platform services to work with .NET Core including services developed with .NET Framework, Java, Ruby, or others.

Containers are the VMs of today. .NET Core’s modularity, lightweight, and flexibility make it easier to deploy .NET Core apps into containers. Containers contain an app as well as all configuration files and dependencies into a single, small, and independently deployable unit of software. Containers can be deployed on any platform, cloud, Linux, and Windows. .NET Core works well with both Docker and Azure Kubernetes Service.

Cloud Apps

Cloud Apps are growing in popularity these days. Azure supports all kind of cloud apps. .NET Core and C# apps can be deployed on Azure via Visual Studio 2019.

Internet of Things

IoT apps are growing. .NET Core supports IoT development via UWP framework for IoT devices running Windows 10 IoT Core. UWP can be used to build apps that run on IoT powered by Raspberry Pi, MinnowBoard MAX, DragonBoard 410c, and others.

New to IoT? Start here,

Machine Learning

Machine Learning is a growing area for software developers. 

Getting Started with Machine Learning using .NET Core and ML.NET.

Games

Unity is one of the most popular game development frameworks. C# and UWP are used to build games for mobile, desktop, console, TV, VR, AR and the Web.

Learn more about Unity and game development here.

What is New in .NET Core 3.0?

The latest version of .NET Core, 3.0, was just released. C# 8 and Windows Desktop are two major additions to this release.

C# 8 is the latest version of the C# language. C# 8 is a part of .NET Core. C# 8 adds new features including

Windows Desktop is a new addition to .NET Core 3.0 that allows developers to build Windows desktop applications using Windows Forms, WPF, and UWP.

Here is a list of other features and enhancements in .NET Core 3.0,

  • MSIX Deployment for Windows Desktop
  • MSIX is a new Windows app package format. It can be used to deploy .NET Core 3.0 desktop applications to Windows 10.
  • Fast built-in JSON support
  • IEEE Floating-point improvements
  • .NET Platform Dependent Intrinsics
  • Framework-dependent executables support
  • Build copies dependencies
  • Assembly Unloadability
  • Windows Native Interop
  • TLS 1.3 & OpenSSL 1.1.1 on Linux
  • Improved Cryptography
  • SerialPort for Linux
  • ARM64 Linux support
  • GPIO Support for Raspberry Pi

References

https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0

Learn more

Here are more recommended readings on .NET Core.

References

  • https://docs.microsoft.com/en-us/dotnet/core/
  • https://dotnet.microsoft.com/