Provide support for a variety of chip and OS targets.
Since the initial version of .NET Framework (the first beta version of .NET 1.0 was released in the fall of 2000), Microsoft has released many more upgrades over the years. With an intent to make the framework cross-platform, open source, and modular, the software giant has now come up with .NET Core Framework.
Designed for adaptability, Microsoft's .NET Core is an open-source, cross-platform, modular platform that enables you to build and deploy applications that are targeted at multiple operating systems. It should be noted that .NET Core is now available on the Windows, OS X, and Linux platforms. It is supported in several flavors of Linux, including Red Hat Enterprise Linux and Ubuntu. This article presents a discussion on .NET Core, its features, and why it is useful.
What Is .NET Core Anyway?
.NET Core is a new cross-platform .NET stack from Microsoft that is optimized for open-source development and agile delivery on NuGet. .NET Core is designed by Microsoft to support many different platforms and architectures. It should be noted that WPF and WinForms aren't supported on .NET Core. The MSDN states: ".NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications."
Main Characteristics of .NET Core
The major characteristics of .NET Core include the following:
- Cross-platform support: It can work on multiple platforms, such as Windows, Mac, and Linux.
- Flexible deployment: You can deploy a .NET Core application side by side with your application seamlessly. It is a general-purpose development platform that consists of several components. These include the managed compilers, the runtime, and the base class libraries. It also includes many application models, such as the ASP.NET Core.
- Modular: .NET Core is composed of a set of modular components. This enables you to take advantage of the package you want to use rather than including the entire .NET Core framework. This boosts performance as you end up creating applications that contain just what you need.
- Open source: .NET Core is open source using MIT and Apache 2 licenses and is available in GitHub.
The .NET Core Stack: The Architectural Components
As we have already discussed, .NET Core is designed in a modular manner. Hence, it is componentized. The components of .NET Core include the following:
- A .NET runtime: This is used to provide type safety, garbage collection mechanism, native interop services, loading of assemblies, etc.
- A collection of Framework Libraries: These provide the primitive data types, the utilities, etc.
- A collection of SDK tools and compilers: These provide developer experience when working with the .NET Core SDK.
Getting Started with .NET Core
.NET Core is distributed in two ways: via NuGet as a package and also as a standalone distribution. You can download a copy of .NET Core from here.
You can use Visual Studio 2015 Community Edition (it's free), install Visual Studio 2015 Update 3, and then install the .NET Core Tools for Visual Studio. Alternatively, you can use Visual Studio Code (if you don't want to use Visual Studio) and then install the C# extension and the .NET Core SDK.
.NET Core provides support for languages like C#, VB.NET, and F#, and all the latest language concepts—like generics, LINQ, and asynchronous programming—are supported. It should be noted that .NET Core refers to several technologies. These include .NET Core, ASP.NET Core, and Entity Framework Core. All of these technologies run on top of the CoreCLR runtime environment.
Essentially, there are two main distributions of .NET Core: .NET Core and .NET SDK. While the former includes the .NET Core runtime, the latter consists of the .NET Core Tools.
Comparing and Contrasting .NET Framework and .NET Core
Let’s now take a quick tour on how .NET Framework and .NET Core compare and contrast to each other. Well, both are managed frameworks, and they have their own runtime environments and garbage collection mechanisms. Here’s the list of the differences between these two frameworks.
- Open source: While only a subset of .NET Framework is open source, the entire .NET Core framework is open source.
- Subsystems: .NET Core has adopted a simpler programming model. Some of the features of .NET Framework—like Code Access Security—are not supported by .NET Core.
- Multi-platform support: Unlike .NET Framework, .NET Core provides support for multiple platforms, i.e., Windows, Mac OS, and also Linux.
- Fewer Application Programming Interfaces (APIs) support: As of this writing, .NET Core doesn’t support all the APIs that are available in .NET Framework.
You can take a look here at the .NET Core roadmap to get to know more about the recent developments in this framework.