Introduction to .NET 5 for ASP.NET Developers
If you are keeping an eye on the progress and future direction of .NET you
might be aware that
somewhere in May 2019 Microsoft announced that the next major release after
.NET Core 3.0 will be .NET 5. And just a few days ago they
announced the availability of .NET 5 Preview 1. The remainder of this
article discusses the current state of .NET Framework and .NET Core and where
the things are heading to for web developers. If you are new to these latest
happenings and are looking for a glimpse, read on...
Currently there are two distinct frameworks - .NET Framework 4.8 and .NET
Core 3.1. A thousand feet look at these frameworks will look like this:
The three layers shown in the figure namely compilers and runtime, base class
library, and web apps are separate for these two frameworks. Although there is a
sort of overlap in terms of what you can accomplish using these frameworks the
point is - these are two separate frameworks although they might sound similar.
The .NET Framework is targeted towards apps running on top of Windows whereas
.NET Core is targeted towards cross-platform development. Additionally, .NET
Framework is one big framework whereas .NET Core is a small and modular
framework where development is driven by NuGet packages. Visual Studio 2019 IDE
provides support for both kinds of development. This means today you need to
pick from one of these frameworks depending on your needs.
Web development options under .NET Framework
Now, let's see what development options are available for ASP.NET developers
under .NET Framework 4.8.
Here in this figure you can see that ASP.NET offers these development
- Web Forms
- Web API
Web development options under .NET Core
Next, look at the development options under .NET Core:
Moreover you have:
To summarize, you have these development options under .NET Core 3.1:
- Razor Pages
- SPA using Angular and React
- Blazor Server (and WebAssembly in preview)
With .NET 5 Microsoft is planning to unify these two frameworks into a single
framework. That means you no longer need to choose between one or the other
framework. This also means that the development will be cross-platform in most
of the cases. The three layers shown in the initial figure will now unify to
arrive at a single framework.
With a single framework to work with, there will be a unified set of web
development options. The new framework will be tilted towards .NET Core web
development options. Notably, web forms won't be available under the new
framework. You might find Razor Pages or Blazor as an alternative to migrate
your Web Forms apps.
Since .NET Core 3.0 Blazor is getting a lot of attention from developers.
There are two development models for Blazor applications - Blazor Server and
Blazor WebAssembly. Blazor Server uses SignalR for its working whereas Blazor
WebAssembly is based on the new
Currently Blazor WebAssembly is in preview.
While you will be able to develop REST style services you also have choice to
use gRPC for building RPC style services.
If you are already an experienced ASP.NET Core developer, you are probably
aware of these features and technologies. You may not find ASP.NET Core 5
drastically different than ASP.NET Core 3.1 at this stage but there might be
additions and enhancements as .NET 5 progresses in coming months. So, keep a
watch on official announcements from Microsoft.
To summarize, you should migrate your ASP.NET apps built using the .NET
Framework to .NET 5 whenever it becomes available. On the same lines, you should
migrate your ASP.NET Core apps built using .NET Core to .NET 5. For developing
new applications .NET 5 would be your natural choice.
Microsoft released .NET Framework 4.8 in April 2019 and .NET Core 3.0 in
September 2019. Subsequently .NET Core 3.1 was released in November 2019. As per
blog post here (and also
here) the .NET 5 is expected to be available in November 2020. They also
plan to release major version of .NET every year in November. As of this writing .NET 5
Preview 1 has been made available and you can download it
here. Of course, there might me many more preview releases before the final
You can also watch the companion video of this article where I am showing how
to create a new ASP.NET Core 5 - Preview 1 project. I am also showing how to
migrate ASP.NET Core 3.1 projects to ASP.NET Core 5 - Preview 1.
That's it for now! Keep coding!!