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 […]
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.
These are components of the battle tested framework you’re used to if you’re a .NET developer.
|ASP.NET 4.5.2||Current release|
|Entity Framework 6.1.3||Current release|
|.NET 4.6||RTM release|
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||
|Entity Framework 7 to Entity Framework Core 1.0||
|.NET Core 5 to .NET Core 1.0||
|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.
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,
.Net Core 2.1 was announced recently by Microsoft along with corresponding updates for ASP.Net Core...
In my previous post, I gave an overview of NancyFX, an open source and community...