.NET5 - A Unified Platform
Tags: csharp, dotnet, blazor, xamarin
Published: 2020-11-20 19:36:15


The official version of .NET5 was released last week and bringing huge improvements into the .NET ecosystem. Like many interested developers, I have downloaded it, and in this article, I want to discuss some of these cool features.

.NET 5 is the next version of .NET Core, and Microsoft continues the journey of unifying the .NET platform.


## .NET 5 General Availability

Vision for .NET is a unified set of libraries, tools, SDKs, runtimes, and begins this journey by making everything available in .NET.

These are some new features and improvements of .NET5:

+ **Single file application & smaller container images**
+ **Web and cloud investments**
+ **Windows desktop development enhancements**
+ **Windows ARM64 support**
+ **Continued performance improvements**
+ **New C# 9.0, F# 5.0 language features**

## Performance Improvements

let’s move forward and look at the improvements that you’re going to see in .NET5. Here, the plain text benchmark is up 38% and the JSON serialization benchmark by +42%.

![.net5-performance-improvements-1](https://dev-to-uploads.s3.amazonaws.com/i/6fmpg8a52207kd50a06s.png)

![.net5-performance-improvements-2](https://dev-to-uploads.s3.amazonaws.com/i/ctk8nbtqix6d0u8hs1vj.png)

## Xamarin.Forms 5
Xamarin forms 5 is coming out later this year with tons of new features like:

+ **Beautiful Design with Brushes, Shapes, and Paths** - Letting you draw beautiful custom cross-platform UIs across android, ios, and windows.
+ **Control templating for native controls**
+ **Improved XAML experience in Visual Studio** - There's a much better XAML experience because the IntelliSense has improved.
+ **Hot Reload 2.0**
+ **Develop iOS apps on Windows** - You can start building cross-platform xamarin apps right now with just an iPhone and a pc.

## Visual Studio 2019 16.8 GA and 16.9 Preview

With the new version of .NET5, a new version of Visual Studio was also released and bringing new features such as:

+ **.NET 5.0 included**
+ **.NET productivity enhancements**
+ **Intellicode team completions**
+ **New Git experience** - A brand new git experience to make using git even easier inside of visual studio.
+ **Linux debugging** - There's awesome support for Linux debugging if you want to build a .NET5 project and run it on Linux you can do all of that in windows using windows subsystem for Linux.
+ **Improved XAML experience**
+ **GitHub Actions in Visual Studio** - You can now take a .NET project and publish it not to a cloud endpoint, but to GitHub actions so you can have a  full CI/CD flow using GitHub actions.

## Blazor

Blazor is a web UI framework for building single-page web apps with just C# and no javascript required. Let’s take a look at what blazor in .NET5 has to offer:

+ **.NET5 Target** - In an old one, the target set to .net standard, but in .NET5, by comparison, we now target .NET5, and you have access to all the .NET5 APIs using the same core framework libraries used on the server and desktop.
+ **New compatibility analyzer**
+ **Performance improvements** - Performance is also significantly improved in blazor webassembly in .NET5, component rendering, and general runtime execution is now three times faster. <br/>

![.net5-blazor-webassembly-performance](https://dev-to-uploads.s3.amazonaws.com/i/ukk8izm9xuj69g07r85g.png)

+ **Uses the core BCL instead of the mono BCL**
+ **Virtualization Component** - Only render the data that is currently visible on the screen, and it will also only fetch the data that needs to be rendered.
+ **Support for  CSS and Javascript isolation**

## Cloud-Native Investments

This has been a massive area that the .NET Team focused on in .NET5 these last couple of years and introduced new improvements and features:

+ **REST API's** - You can build tests much more straightforward and publish these to things like azure API management as well plus, you can do client generation the swagger generated by OpenAPI by default.
+ **gRPC contract-based API's** - gRPC lets you build high-performance contract-based APIs, similar to WCF.
+ **Smaller, faster microservices** - One of the cool things that .NET Team has done in .NET5 is that you can take an ASP .NET project and select that you want to publish it, and that will generate a small 20mg self-contained application that requires no .NET on the machine at all to run.
+ **Cross-platform development with WSL and Linux**
+ **High-performance reverse proxy (YARP)**

## How Exciting 😍

.NET developers keep growing, and there are over 5 million active .NET developers today in the visual studio family, which includes visual studio, visual studio code, and visual studio for mac.

Microsoft will continue to unify the platform, and they plan to deliver amazing unified toolchains, and awesome cross-platform native UI with MAUI. .NET has a release every year, and they do this because they want to make it very consistent. I believe that .NET will provide the best solution for all modern workloads.

Enjoy of .NET world.