.NET 7 is Coming!🚀 (but with some issues)
Tags: dotnet, csharp, news, programming
Published: 2022-02-18 14:25:00

We are already halfway through Q1 of 2022 — me as usual, still processing 2020 — and **Microsoft has Turbo mode on:** it is slowly starting to release .NET 7. Aside from that, Microsoft is very focused on **Blazor Hybrid** which in the next few months will make its debut.

Although, everything is going as Microsoft planned, **they can’t get off track:** they have more than 10 issues and most of them are still open as of today.

In addition, it brings with it several **new features and improvements** to existing functions that we are going to see as well.

Before we start wondering: Will .NET 7 be released? Will Microsoft have many problems to achieve it? And an endless number of doubts, let’s see what Microsoft is already working on for .NET 7.

---

## The union of Blazor and .NET MAUI

As we already know, Blazor is a web application development framework and one of its main features is that **Blazor has the ability to run the application views on the client side** — and not on the server and then teach the browser the HTML.

🧠**Interesting fact:** _In case you didn’t know, the name [Blazor comes from the union of two words](https://blazor-university.com/overview/what-is-blazor/): Browser and Razor — the .NET HTML view generation engine._

And as we also learned in a previous article, .NET MAUI is the Framework Microsoft is working on that focuses on mobile applications. And if you’re asking yourself... Yes, many people say that **.NET MAUI will be the evolution of Xamarin.**

This is where Microsoft is going to do a “_milkshake_” with Blazor and .NET MAUI that will become Blazor Hybrid. Let’s take a closer look.

---

## Blazor Hybrid: The revolution?

In order to explain it in the best possible way, we must go a little bit to the past (specifically 2018), which was the year of the initial release of Blazor (web). At that time it was only possible to **build web pages with HTML, CSS and also with C#.** This was unfeasible to think about several years ago, but now **Microsoft wants to go a step further** — and strong: Now, they are working on bringing together the main features and functions of Blazor and .NET MAUI to **Blazor Hybrid.**

As [Visual Studio Magazine](https://visualstudiomagazine.com/articles/2022/02/10/blazor-hybrid-net-7.aspx) explains,

> Blazor Hybrid apps are native apps that can leverage web technologies like HTML and CSS for additional functionality. Thus a hybrid app might use an embedded WebView control to render web UI while also leveraging native device capabilities.


![Native UI & Web UI (source: Microsoft)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1b3896ku4x8ymgwocyw5.png)

---

## Cloud Native and containers

Another new feature explained by Microsoft is the **[Modern Cloud](https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/#modern-cloud-cloud-native-and-containers)**. As we already know, cloud-native applications are usually built from scratch to take advantage of all the resources of containers and databases. This architecture is very good because it allows scaling applications very easily with the creation of autonomous subsystems. This, in turn, reduces costs in the long run.

What .NET will bring will be the **facilitation of the creation of cloud-native applications** with different kinds of improvements in the developer experience — _thanks Microsoft for thinking of us._

Besides, it will simplify quite a lot the installation and configuration of authentication and authorization systems. And of course, as always, small performance improvements at application runtime.

---

## Easier upgrading .NET applications

As we all know — and some have suffered through it, migrating older applications to .NET 6 has not been the easiest thing in the world. That’s why Microsoft is bringing **[new upgrade enhancements](https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/#modernize-upgrade-net-apps) for older applications.** The main points are:

- More code analyzers
- More code checkers
- Compatibility checkers

All of this will come along with the **[.NET Upgrade Assistant](https://dotnet.microsoft.com/en-us/platform/upgrade-assistant)** that will greatly help in getting those applications upgraded, saving the developer time — thanks Microsoft.

---

## Upgraded Hot Reload

My favorite feature of .NET 6 will be updated in .NET 7. **C#** Hot Reload feature will be present in **Blazor WebAssembly** and **.NET for iOS and Android.**

In addition, [Microsoft includes new features](https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/#hot-reload-improvements) such as:

- Adding static lambdas to existing methods
- Adding lambdas that capture this to existing methods that already have at least one lambda that captures this
- Adding new static or non-virtual instance methods to existing classes
- Adding new static fields to existing classes
- Adding new classes

## New APIs
``System.Text.Json`` includes a few of small quality-of-life improvements:

- Include a ``JsonSerializerOptions``
- Include a ``JsonWriterOptions.MaxDeph`` property, and verify that this value is derived from the corresponding
- Patch methods added to ``System.Net.Http.Json``

For me, all the features mentioned — from a theoretical point of view — are good, although we will have to see how they behave in practice. As we know, not everything is good.

**The official release of .NET 7 may be delayed** — although we are not counting on it and Microsoft has not said anything about it. Apparently, **Microsoft is not very satisfied** with the current stability of the platform, so it wants to postpone the release until all remaining issues are resolved. However, this might be more difficult than it seems, as there are **more than 10 issues currently open and unresolved.**

As **[Visual Studio Magazine](https://visualstudiomagazine.com/articles/2022/02/10/blazor-hybrid-net-7.aspx)** explains, even though most of the open issues in the task list are for specific things, among them are five “_tenets_” issues that explain goals in general terms for DPI, performance, accessibility, security, global readiness and awareness.

There are also some more specific issues, such as **[Hot Reload on MAUI Blazor App does not works.](https://github.com/dotnet/maui/issues/2527)**

---

## Conclusion

After seeing everything seen in this article, we can say that there are more good things than bad. Despite the difficulties that Microsoft is encountering along the way, so far it is meeting the promised deadlines, so yes: **We can expect the official release of .NET 7 by the end of this year.**

If you want to keep up to date with any news, I recommend you to follow us so you won’t miss anything and be the first to receive the latest .NET information.