What is .NET Core and why does it matter?

DevToolsGuy / Tuesday, January 13, 2015

Microsoft began working on the .NET framework in the late 1990s and the software development tool has undergone enormous changes since then. What originally made the framework so attractive was that it contained a class library that gives developers the freedom to write applications in any language (VB, C#, C++ etc.). Programs written in .NET are executed in a software environment called the Common Language runtime (CLR), an application virtual machine that provides security, memory management and exception handling.

.NET has received broad support from programmers and developers who cite its consistent programming model, direct support for security, less complex development efforts and debugging. It also makes application deployment and maintenance straightforward and simplifies assembly on computers with the framework installed. Thanks to this joined up approach, .NET became popular across the board.

The IT industry is undergoing constant change, so Microsoft have made some big alterations to the .NET Framework and specifically have rolled out .NET Core (which is also partially available to the open source community). In this post we’re going to look into this particular development in further depth.

What is .Net Core?

One of the main limitations of the .NET Framework was that it failed to share code across platforms. Now, however, .NET Core will provide developers with a library which can be deployed over various platforms and which also allows developers to import just the parts of the Framework they need for their projects.

The .Net Core Runtime has been released to the open-source community who will collaborate with the .NET team to improve and extend the platform. Licensed under the MIT open source license, the code now provides developers with a fully supported, open source, cross platform .Net stack for creating server and cloud applications. This will not only include compilers and the CLR, but also the core .NET base class libraries and the higher level .NET Web, Data and API Frameworks.

.NET Core is a small optimized runtime that is the basis of ASP.NET Core 5. At present, it only runs on Windows but will soon be extended to support Linux and Mac.

A core with two major Components

The structure of .NET Core is comprised of two major components which add to and extend the capabilities of the .NET Framework as follows:

1. Runtime:

  • Built on the same codebase as the .Net Framework CLR.
  • Includes the same GC and JIT (RyuJIT)
  • Does not include features like Application Domains or Code Access Security.
  • The runtime is delivered on NuGet (Microsoft.CoreCLR package)

2. Base class libraries:

  • Are the same code as the .Net Framework class libraries but do not contain dependencies so have a smaller footprint.
  • Available on NuGet (System.* package)

Benefits and differences

What’s really special about .NET Core is that it’s shipped by NuGet, meaning you can ship a private version of the .Net Core Framework for your specific application. In this way, other application versions can't change your application’s behavior, which is very cool.

.NET Core is not only available on the Windows platform but will soon be accessible on Mac and Linux. What this means for developers is that they can now build web and cloud based applications that can run on any system, which is another neat feature.

Further, the open-source applications Microsoft have made available can be built using the free Visual Studio Community edition. This isn’t just a rehash of the former "Express" edition, but a full blown development environment. Basically you get Visual Studio Pro, which is really neat.

Finally, the development environment and ASP.NET 5 (based on .NET Core) will support gulp, grunt bower and npm for front end developers. Developers will now have the scaffolding for a wide range of builds readily available. All in all, a very nice development.

Links to more information

We want to make your job easier, so check out some of the following links so you can get started with .NET Core:

So, what’s next?

We reckon you’ll want to dive right into .NET Core and start playing with it. So, to start with, why not download the Visual Studio 2015 preview and the .Net 2015 preview and start building next generation applications yourself? Here are just some of the things you can do:

  • More productivity tools like breakpoint configurations
  • Cloud aware IDE: build for using Azure and Visual Studio Online.
  • Ready for cross platform mobile development
  • Including C# and Xamarin support
  • Including HTML and JavaScript and Apache Cordova support is now build-in.
  • Includes a Visual studio Emulator for android.

The Visual Studio 2013 Update 4 included dozens of improvements and a few new features for the developer. The 2015 update looks set to take this to a whole other level - and we can’t wait to get started!