What is .NET Core?


.NET Core is a new Microsoft platform, which is modular, cross-platform, open source and has a better support for the Cloud. .NET Core will continue to run on Windows devices, as well as on Linux and Mac OS X. In addition, unlike the .NET 4.6, which is installed machine-wide as single large block, Windows-only runtime environment, .NET Core can be used to create modular libraries and the Applications that can target multiple platforms and be deployed (per-Application), along with the Application itself.

Why .NET “Core?”

Microsoft’s vision of .NET platform evolved over the past 15 years and many technology enthusiasts, leaders and others wanted .NET to be open-source, available to other platforms like Linux and Mac, in addition to currently and widely supported Microsoft Windows.

To accomplish such a large goal and vision, it was necessary to have a “fork in the road” and create a fresh and new version of “.NET” which is named as “.NET Core 1.0”.
.NET Core

Hence, developing the Application, using “.NET Core 1.0” will enable and empower developers to write Applications with one platform; for instance, Microsoft Windows, and when everything is ready, it can run on the multiple platforms. In this case; it is Mac, Linux and Windows of course.

Why Version “1.0?”

The current and latest .NET Framework version is 4.6.x and so the next major release version was supposed be “5” and initially it was called .NET Core 5. Similarly, the next version of ASP .NET 4.5 was named ASP .NET 5 and the next version of Entity Framework 6.1.x was named Entity Framework 7.

This numbering order conveyed the message that these are just the next version of the same framework and technology; whereas the reality is different. “.NET Core” concept is totally new, YES! It's a brand new concept. Hence, the numbering has to be re-started. Therefore:

.NET Ecosystem

With the new launch of .NET “Core” wave of framework and technology, old version .NET 4.6 (which is mature and fully grown) will continue to co-exist. .NET Core can be installed on the same machine. However, .NET Core will have its very own personalized core libraries etc.

.NET Ecosystem

.NET Core includes CoreCLR, a more lightweight run time, that provides the basic Services to your Application, which includes automatic memory management and garbage collection, along with a basic type library, unlike .NET 4.6, which has such a large footprint for the same.

.NET Core also includes CoreFx, a set of modular assemblies, that you can add to your project/Application, as per your demand, unlike the .NET Framework 4.x, which always had to make the entire .NET Framework Class Library alias BCL (base class library) available. With .NET Core, you can select only the assemblies that you need. i.e. Windows doesn’t need Web and vice-versa.

.NET Core implementations

Following technologies are currently available in .NET Core wave.

Supported Environments

.NET Core is supported by Microsoft on Windows, MAC OS and Linux. On Linux, Microsoft primarily supports .NET Core running on Red Hat Enterprise Linux (RHEL) and Debian distribution families.

.NET Core currently supports X64 CPUs. On Windows, X86 is also supported. ARM64 and ARM32 are in progress.

A wide array of all the supported platforms are shown in the Table below:

Environments

Which one to choose .NET 4.6 or .NET Core

.NET Core is not yet mature. Until it’s fully mature and time-tested; in my view, it’s not advisable to start building Enterprise LOB (line of business) Applications, using .NET Core. Hence, .NET 4.6 and ASP .NET 4.6 are more mature and time-tested until .NET Core becomes mature.

The Future of .NET

“.NET Core” is certainly the future of the .NET platform, but we are not there yet. It will be a while until this is widely accepted and the industry really starts to mold and accept its advantages, in order to become more open to build light-weight, cross-platform applications, using .NET. However, Microsoft envisions to continue with ASP .NET 4.6, as well. ASP .NET Core 1.0 is not an end for .NET 4.6 /ASP .NET 4.6. Instead, it’s a new beginning.

Video on "What is .NET Core"

Article on "Installing .NET Core RTM"