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

Two frameworks

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 options:

  • Web Forms
  • MVC
  • Web API
  • SPA

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:

  • MVC
  • Razor Pages
  • API
  • SPA using Angular and React
  • Blazor Server (and WebAssembly in preview)
  • gRPC

The future

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

Release timeline

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

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

Bipin Joshi is an independent software consultant, trainer, author, and meditation teacher. He has been programming, meditating, and teaching for 25+ years. He conducts instructor-led online training courses in ASP.NET family of technologies for individuals and small groups. He is a published author and has authored or co-authored books for Apress and Wrox press. Having embraced the Yoga way of life he also teaches Ajapa Yoga to interested individuals. To know more about him click here.

Get connected : Facebook  Twitter  LinkedIn  YouTube

Posted On : 23 March 2020

Tags : ASP.NET ASP.NET Core MVC .NET Framework C# Visual Studio Programming Languages