Toggle Menu

Insights > Tech Tips > Demystifying Key Differences in .NET Core 1.0 vs .NET Framework

Demystifying Key Differences in .NET Core 1.0 vs .NET Framework

There have been so many exciting changes in the .NET world lately that are likely to have very big implications on Microsoft’s development ecosystem for years to come. Microsoft wants to make developing cross-platform software, from any platform, as easy and modular as something like Node.js.  It all starts with .NET Core, a rewrite of […]

By

April 26, 2016

There have been so many exciting changes in the .NET world lately that are likely to have very big implications on Microsoft’s development ecosystem for years to come. Microsoft wants to make developing cross-platform software, from any platform, as easy and modular as something like Node.js.  It all starts with .NET Core, a rewrite of the .NET Framework.  It supports multiple application models such as ASP.NET Core (also a rewrite), and has a smaller footprint from being able to include only the dependencies you need, as well as a smaller memory footprint.  It’s also open source with contributions from over 10,000 developers.

The tried and true .NET Framework isn’t going away, at least for now. This was a very confusing thing for me at first; the classic one called simply .NET Framework, and the new one is called .NET Core.

Here’s a quick list of some key attributes, none of which apply to the .NET Framework:

  • Developers can target a single common set of libraries that are supported by multiple platforms (Linux, OS X, Windows)
  • Developers can build applications from any platform
  • You can use only the libraries you need within an application, and the libraries (CoreFX) have been built to have minimal dependencies. These two things mean a smaller footprint.
  • The smaller footprint reduces the impact of upgrades since only those packages used are affected. It makes it appealing for mobile apps that need a small footprint, and cloud-based apps that need many small applications running side-by-side.
  • The smaller footprint also makes .NET Core up to 10x faster than the .NET Framework.
    Not all functionality in the .NET Framework is included in the lighter .NET Core.

Microsoft very recently changed the names and versions of the new .NET Core 5 to .NET Core 1, ASP.NET 5 to ASP.NET Core 1.0, and Entity Framework 7 to Entity Framework Core 1.0. Thus, the production release has been delayed and is currently slated TBD in 2016 (don’t let that stop you from trying it out!).

Because of this, it’s been hard to keep track of all the developments and changes, and decipher where some of it stands. So, I’d like to aggregate the key components to hopefully help you get a clearer picture.

Full .NET Framework

These are components of the battle tested framework you’re used to:

.NET Framework Description
ASP.NET 4.5.2 Current release
Entity Framework 6.1.3 Current release
.NET 4.6 RTM release

.NET Core Framework name and version changes

 

These new, cross-platform, open source components, that some say will be the future of .NET development.

.NET Core Description Key Components
ASP.NET 5 to ASP.NET    Core 1.0
  • Cross-platform
  • Runs on top of .NET Core or the full .NET Framework 4.6
  N/A
Entity Framework 7 to   Entity Framework Core 1.0
  • Lightweight rewrite of Microsoft’s ORM
  • Built to work well in the cloud, various devices, and traditional .NET applications
 N/A
.NET Core 5 to .NET Core 1.0
  • Modular, cross-platform rewrite
  • Some shared functionality
  • Some missing, (i.e. library for working with XAML-based UIs)
  • Some added (i.e. cross-platform functionality)

 

  • CoreCLR: runtime
  • CoreFX: libraries
  • CoreRT: .NET Native runtime
  • CLI: command-line interface
DNX into CLI Cross-platform command-line interface for creating and managing .NET projects  N/A

The changes in the framework to 1.0 largely reflects that these are not the next versions of their respective components, but rewrites. Some functionality is shared between .NET Core and the full .NET Framework. Some are not. For example, .NET Core doesn’t have functionality for working with multiple GUI frameworks (i.e. XAML-based UIs) and Windows-specific APIs. .NET Core has other functionality that is not in the full .NET Framework, such as cross-platform capabilities.

DNX merged into the CLI

If you have been following the evolution of .NET Core and ASP.NET 5, you likely have heard of or used the DNX (.NET Execution Environment). This has undergone major changes as well and has been swallowed up by the .NET Core CLI.

DNX was .NET’s new “.NET Execution Environment”. It was then merged onto the CLI, the .NET command-line interface, with functionality the team had around building native applications on .NET Core. The CLI is for creating and managing .NET projects, including compilation, NuGet package management, launching a debugging session.

The CLI makes it easy to install .NET Core on your PC, Mac or Linux machine and start building an application, all from the command line. You can try installing .NET Core here. Then, build an ASP.NET Core on Windows, Linux, OS X or Docker. Pretty cool!

Here are some resources to help you go further,

Let's Talk

You Might Also Like

Tech Tips

Top Four Highlights from .Net Core 2.1

.Net Core 2.1 was announced recently by Microsoft along with corresponding updates for ASP.Net Core...

Tech Tips

NancyFX Vs. Web API in ASP.Net Core

In my previous post, I gave an overview of NancyFX, an open source and community...

Tech Tips

Getting Started NancyFX and ASP.Net Core

Many people will start a new ASP.Net Core project and choose Web API as their...