How Companies Are Hurting Themselves Bei ...

How Companies Are Hurting Themselves Being Reluctant To Use Blazor

Jun 03, 2022

Using new technologies is something that a lot of companies consider risky, up to the point of not even test the technology even in internal demo/sample apps, and that is a terrible approach, in order to grow, to become better, and to be more efficient, companies need to be frequently exploring new technologies.

In case of Blazor specifically, lots of people think it is something totally new, when it is absolutely not, if you go to Microsoft Official documentation, you will see that its official name is ASP .NET Core Blazor, that's right, Blazor is supported by ASP .NET Core, the same framework that your company probably has been using for years for MVC, and for your SPAs backends.
So, as you can see Blazor is not totally new, it is instead an additional feature, part of ASP .NET Core.

Another wrong argument companies use for being reluctant of using Blazor, is that they compare it to Silverlight, without understanding the full picture of Silverlight and the Browsers restrictions at that time. Silverlight was a response to create Rich Web Applications easily with .NET in a time when the only way to do this was through plugins, which open a security risk, as time evolved browser's vendors begin blocking the ability to install plugins and the SPAs frameworks began to be popular, SPAs frameworks run natively on the browser since they usually end up being just a combination of html, javascript and css, so they can run virtually everywhere a web browser can be installed, and you don't have to care for the Operating System your apps will be running on.
Additionally, back in the times of Silverlight, Microsoft had a very different management team, and most of their code was private, very few things were Open Source.

Nowadays, .NET source code is Open Source, actually, when you see new versions of the framework and even Visual Studio, you will see a lot of additions from the community itself.
Microsoft decided not to support WCF in .NET Core, since WCF is basically for Windows, and .NET Core is meant to be supported in every platform and the recommended solution is migrate to gRPC a new better and more secure technology, instead the community itself decided to develop a .NET Core compatible version of WCF: https://devblogs.microsoft.com/dotnet/corewcf-v1-released/

So, you already have another technology that could have been totally killed, and it instead wasn't.
That's the great benefit of having .NET being Open Source, you are now not limited, instead you have more choices.

Blazor is part of ASP .NET Core, and as such, it is also Open Source and you can see the code and even contribute to it.

https://github.com/dotnet/aspnetcore/tree/main/src/Components

Blazor, being part of ASP .NET Core, uses the same technology, which allows for an optimized ability for code reutilization, on both client and server side.

By allowing you to reutilize your code everywhere, Blazor allows you for way faster development without sacrificing quality, and, if you do a good software architecture leveraging this aspect, it will result in less potential points of failure, less need of duplicated automated tests among client and server, which results in faster pipeline in your Continuous Integration, meaning faster deployments, meaning QAs have to wait less time, and you will be able to deliver high quality code faster to your customers.

And that is only by using Blazor, now, by also leveraging other aspects of C# and .NET, you can improve quality even more while also create code faster with less human-made errors, or mismatches, I'm talking about leveraging the potential of C# Source Generators, which allows you to automatically generate source code based on some hints of your design. C# Source Generators allows you to even create most of your application's code automatically, you just need to establish a pattern and code guidelines, which is anyway a must in any software development process to guarantee code quality.

Check the following links, you will see that most of the code are empty partial classes, leveraging the power of C# Source Generators to automatically create most of the applications code

https://github.com/efonsecab/AutoGeneratedSystem

https://github.com/efonsecab/FairPlayDating

To add even more benefits of using Blazor, there is the fact that it can be used in .NET MAUI, this means that you can design a system in a way that even the UI is shared between all of your application deliveries as I have shown in FairPlayTube
https://github.com/efonsecab/FairPlayTube/tree/main/src/FairPlayTubeSln/FairPlayTube.MauiBlazor

FairPlayTube is designed in a way to be able to reutilize components among projects, which allows for quicker development of the mobile version, while keeping a similar layout as the main web application, making it easier for the web app users to transition to the mobile app.
https://github.com/efonsecab/FairPlayTube/tree/main/src/FairPlayTubeSln/FairPlayTube.MauiBlazor

With all of the work I have done on Blazor for more than 2 years my estimates are that you can save at least 50% of development time compared to other technologies such as Angular, React, or Vue, especially if you apply the usage of C# Source Generators, and all without sacrificing code quality.

Faster high quality development, ultimately translates in more happy customers, less headaches with software issues, less time spent researching for bugs that could have been prevented, more businesses opportunities, and all of this translates in an improved revenue.

Some lists of websites already using Blazor

https://dotnet.microsoft.com/en-us/platform/customers/blazor


https://trends.builtwith.com/websitelist/Blazor

Enjoy this post?

Buy Eduardo Fonseca B a pizza

More from Eduardo Fonseca B