You Can’t Say We — & Microsoft — Didn’t Warn You
We first wrote about the coming merger of .NET Framework and .NET Core in May of 2019, and the time for the completion of that effort is fast approaching. If you are out of the loop on this, let’s get you caught up.
A Brief History of .NET and .NET Core
- The .NET Framework got its start with a very Star Trek name in 1999 — it was originally called Next Generation Windows Services (NGWS).
- The first BETA version came out in 2001 & the first production release of .NET 1.0 came out in February of 2002.
- Satya Nadella becomes CEO of Microsoft in February of 2014 (this, as we have said before, changed EVERYTHINMG at Microsoft). Nadella’s vision for the future of Microsoft was developer, cloud, and open-source based with a focus on the platforms themselves.
- Shortly after Nadella became CEO, Microsoft announced the coming .NET Core Platform. .NET Core would be a free and open-source successor to the .NET Framework in November of 2014. And shockingly, the plan from the start is to make it cloud-friendly AND the first true cross-platform development framework.
- .NET Core 1.0 is released just 18 months later in 2016.
- .NET Core is embraced by the community and enjoys the fastest platform development cycle in Microsoft history. Applications running on .NET Core are measured to have speed and efficiency gains that are orders of magnitude above legacy .NET Framework apps.
- In April of 2019, Microsoft released the last version of .NET Framework — version 4.8 — with the intention of unifying the platforms. We wrote about the announcement in blog post at the time.
- .NET Core 3.0 is released in September of 2019. Version 3.1 is released in December of the same year and all future efforts are dedicated to unifying the two frameworks. It is decided that the unified framework release will be called .NET 5.0
- THIS IS WHERE WE ARE NOW
- On August 25th of 2020, the final preview release of .NET 5.0 goes live. Over the next four months, two “go-live” release candidates will be issued, culminating in a production release scheduled for December 2020.
- It is no accident that a new Blazor release came out at about the same time adding a bunch of enhancements, including Lazy Loading for WebAssembly. And this preview release specifically adds support for this functionality (they know it’s important).
The State of the .NET Union
Not only is Microsoft following an aggressive development schedule for .NET 5.0, but they are achieving their objective — hitting all of the projected milestones with marginal delays. The preview releases that we have been monitoring are demonstrating solid work and attention to detail. Bugs identified by the community are addressed quickly and efficiently. And while .NET 5.0 will have breaking changes, applications making the transition from older versions should have about as clean an upgrade cycle as possible.
.NET 5.0 Preview Release 8 is now a fully-featured, functional version of what we are going to get. Yes, there are still some bugs to work out and there are a significant number of pull requests remaining to be integrated, but the meat is all there. All of the fundamental objectives of the effort are in the package, including:
- Support for native and web apps across all major operating systems.
- A unified Software Development Kit — .NET SDK.
- A unified Base Class Library (BCL).
Microsoft has written up a full description of all the features and functions. A link to that announcement — including code samples — is in the Resources and References section below.
Looking Ahead to .NET 6.0
Microsoft has tipped their virtual hats to acknowledge that there are a few things that developers want that will not get into .NET 5.0. These features and functions have been bumped to .NET 6.0, including:
- Native AOT — The official statement is that “ahead-of-time (AOT) compilation is a ”spectrum” of functionalities. And they recognize that “native AOT” is not in the plans for .NET 5.0. According to a developer survey (see links below). But they have added this to the roadmap for .NET 6.0.
- Blazor & WebAssembly support for Xamarin mobile apps on iOS and Android — This is in the roadmap for .NET 6.0
.NET 5.0 — A Beginning Not a Conclusion
It is no understatement to say that the pending .NET 5.0 release is the most significant event in the world of code in the last several years. Microsoft is betting the coding farm on the success of this effort. It is not an exaggeration to say that it will set the tone and define the success of the entire Microsoft application and software development ecosystem for years to come.
So far … so good.
We will be following the progress of the .NET 5.0 Release Candidate versions as they come out. You can stay up to date by following our posts on LinkedIn. And as you might expect, we will create a long-form article covering the production release of .NET 5.0 when it is available.
Additional .NET 5.0 Resources and Reference Links
We will be posting periodic updates as release candidates are announced in the run-up to .NET 5.0. You can keep up with the latest news by following us on LinkedIn:
Visual Studio Magazine wrote a piece about the recent enhancements to Blazor:
Richard Lander, Program Manager for the .NET Team, wrote an article on Preview Release 8 on the official Microsoft developer blog, including technical details and code examples:
You can get technical information and download Microsoft .NET 5.0 Preview Release 8 here: https://dotnet.microsoft.com/download/dotnet/5.0
Microsoft published their Native AOT developer survey (good on them for the transparency):