Microsoft’s big shift
A lot is happening in Microsoft land and the future looks very exciting as a .NET developer with the introduction of .NET Core and ASP.NET Core, making it possible to run .NET on any platform.
Times are changing, also within Microsoft. They created the .NET foundation and open sourced a lot of projects. For instance .NET is now open source and developed on Github, making it possible for everyone to contribute.
Red Hat has partnered up with Microsoft and joined the .NET foundation alongside with JetBrains and Unity. Microsoft partnered with Canonical – the company behind Ubuntu, making it possible to run Ubuntu on Windows.
Not long ago Microsoft acquired Xamarin, open sourced its SDK under the MIT license and made it a part of the .NET foundation. With Xamarin along came Mono. Microsoft changed the license of Mono from GPGL to MIT and put it in the .NET foundation as well.
SQL Server will be released for Linux and is scheduled for 2017.
ASP.NET 5 is killed and renamed to ASP.NET Core 1, because as the name indicates, it’s a totally new framework. With .NET Core and ASP.NET Core Microsoft takes a huge step in becomming platform independent, as both run on Windows, Linux and Mac. ASP.NET 4.6 will continue to be developed and supported, and new features are yet to be added. ASP.NET Core is still fresh from the oven, and lacks several of the features from ASP.NET 4.6, but we will most likely see it mature and be up to speed in version 1.3 or 1.4. Microsoft have been a bit vague about the future for ASP.NET 4.6 and onwards, but it looks like it’s slowly getting phased out. My idea is that the development of ASP.NET will stop when ASP.NET Core is fully matured.
The future of .NET
Let’s take a glance at the .NET family to get a better understanding of what the future holds and how the different frameworks will be structured. On the top layer in the diagram below we have the app models; .NET Framework, .NET Core and Xamarin, which all share the same base class library (BCL) called .NET Standard Library. Instead of adding new features to either of the 3 stacks, they will be added in the .NET Standard Library and shared across.
.NET Framework is meant for Windows Presentation Foundation (WPF) apps, Windows Forms and ASP.NET, where as .NET Core is meant for Universal Windows Platform (UWP) and ASP.NET Core applications.
On microsoft.com/net things are clarified further. Basically the .NET Framework is meant for Windows development. That being native, mobile and web applications running in the Windows ecosystem.
.NET Core on the other hand is meant for cross-platform applications, which can run on either Windows, Linux or Mac.
.NET Overview | Build 2016
In the following video from Build 2016 Scott Hunter and Scott Hanselman gives an overview of the future for .NET. In the end of the video Todd Mancini from Red Hat demonstrates how to deploy a ASP.NET/Core application to Red Hat Enterprise Linux, running in a Docker container.
Go checkout redhatloves.net (how cool is that!?) and signup for the Red Hat developer program and download Red Hat Enterprise Linux for free, and play around with it yourself.
ASP.NET Core 1 can run on both .NET Framework 4.6 and .NET Core 1.0, whereas ASP.NET 4.6 is meant to only run on .NET Framework 4.6.
ASP.NET Core even though not yet fully matured, holds a lof of exciting features. First and foremost it allows us to run our applications on Linux and Mac. It’s modular, which means that it’s stripped for most frameworks and libraries we might not even need in our application. For instance you have to include error pages yourself, which also opens up for customization so we can have company specific error pages. You can choose if you want to include MVC or Nancy, should you prefer the latter.
ASP.Net Core is fast! According to Microsoft you’ll see a 10x speed increasement, moving your current MVC application to ASP.Net Core.
ASP.NET/Core Overview | Build 2016
The two Scotts are at it again in this next video from Build 2016, where they show some really cool features of ASP.NET Core. For instance the best demo in the entire world – must watch!
Now, go code…
We are moving towards a more platform independent future, and it has never been more exciting to be a .NET developer as it is today. The cool thing I’m stoked about and think a lot of fellow developers are as well, is that we can now develop .NET applications directly from OS X, without having to open up Parallels. We are not fully there yet though, with frameworks and libraries still missing, but it’s a start. Head over to microsoft.com/net to get going!