For some years now, modern business applications, but also games or office tools, have mostly been implemented as web applications instead of classic Windows applications. Web applications consist of the frontend, which, as mentioned above, is executed in the user’s browser. The actual logic (e.g. calculations or validation of data) as well as the data management of the application are executed on one or more servers. For example, the frontend connects to the server when a user clicks in the application to execute a calculation or to query or store data.

Known web frontend frameworks

In the early years, web applications were often very simple in their front-end design compared to Windows (or other operating systems) based applications. In order to improve the range of functions as well as the presentation and thus the usability of web applications, a large number of so-called web frontend frameworks have been developed in recent years. These include components for tables, sliders, cards, panels, pop-ups, info and error messages, and they often also facilitate or standardize communication with the server. Data can often be dynamically reloaded with them. This means that an entire page is not reloaded, but only the elements that need to be changed. This makes applications much more “responsive”.

Some frameworks also include or support the hip designs like Bootstrap and Material Design. These make it easier for the programmer to develop attractive and consistent frontends. Many popular applications or websites are based on these frameworks.

Another advantage of these frameworks is the reduction of Javascript code resp. the change to TypeScript. Javascript made it possible to bring a certain dynamic into web applications, but was never appreciated by many programmers and often made applications complex and harder to maintain, and there was a certain dependency on the browser versions used.

Various agencies regularly evaluate these web front-end frameworks and one can see that new frameworks are presented every few months and some of them are successful after a short time. Successful means that they are well accepted by developers and used productively in projects. Well-known representatives are Angular, React, Vue or earlier JQuery. Each of these frameworks has its advantages. Some are designed for extensive applications others rather for quick and simple development.

Blazor – a new giant in the world of web frameworks?

Since 2018, there is a new player, Microsoft Blazor. Blazor solves one of the big challenges: many web programmers were strong in programming in C#, the most widely used programming language in the Microsoft .Net ecosystem, but they could never really get comfortable with web frontend frameworks, and specifically Javascript. With Blazor, HTML and CSS are still used, but the frontend can be controlled mostly via the usual C# code (instead of Javascript). Controlling means to load content from the backend, visualize it in the dialog, check its plausibility and pass it to the backend for saving.

By bringing the frontend and the backend closer together, a significantly faster programming is expected. This in turn benefits customers who commission programming work internally or externally.

Already, many component providers (tables, sliders, cards, panels, popups, info and error messages) have also specialized in Blazor, which further increases the attractiveness of Blazor for developers. This is also shown by the growing number of developers who are already using Blazor for productive applications.

With Microsoft as the publisher of this new technology, it can be assumed that it will be continuously developed and also supported for many years.

The use of Blazor has no negative impact on the usability and design of web applications. Furthermore, it is recommended that experts in this field design the dialogs and usability visually and that the developer incorporates these specifications into the application.

Blazor is available as a “server” and “web assembly” variant. These two variants are briefly explained in the following two chapters. For users the difference is hardly noticeable, but technically the distinction is relevant. Not in terms of the programming language (in both cases C# and the .Net ecosystem are used), but in the distribution of the elements to the server and the client (the user’s browser).

More technical information can be found in countless online reports.

Blazor “WebAssembly”

In this variant, the entire application is executed in the browser. The application is downloaded from the browser to the user’s PC or notebook the first time it is started (or after a new version is published). However, the user notices this at most in a slightly longer loading time (a few seconds) when using the application for the first time, but he does not have to install anything. The user’s browser is now used as a kind of operating system in which the Blazor application runs.

Usually the business logic and the connection to the database are still run on a separate server. The server provides a rest API interface to the frontend. The implementation on the server can also be based on Microsoft .Net, but it does not have to be. The only relevant thing is that a Rest API provides access “from the outside”. It often makes sense to outsource the business logic (not directly in the Blazor application) if other applications use the same functions or if different clients (e.g. a web application and an app) are developed.

If an application is developed that does not require extensive business logic and data storage, then the Blazor web assembly can also be run exclusively in the browser (without API connection).

It is likely that this variant of Blazor will be more successful. This variant is called a SPA (Single Page Application).

Blazor “Server”

With Blazor Server, the frontend part of the application is split between a browser and a server part. This setup corresponds more to previous web applications. In the browser, for example, a click from the user is received and sent to the server. The server prepares a response (e.g. a table with data) and sends the generated HTML back to the browser. With this variant, the browser does not have to download the entire application, but always receives from the server only as much HTML code for the display as necessary.

No matter if WebAssembly or Blazor Server, the growing community and the planned further development indicate that Blazor will find its place among the frontend technologies and establish itself in the long run. If you have any questions, please do not hesitate to contact us and we will be happy to advise you.