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 – there are now two distinct .NET flavors. The classic one called simply .NET Framework, and the new one is called .NET Core.

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

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 if you’re a .NET developer.

.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 .NET Core framework to 1.0 largely reflects that these are not the next versions of their respective .NET Framework 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 .NET 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,

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...