{"id":2186,"date":"2023-09-01T09:12:45","date_gmt":"2023-09-01T09:12:45","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?p=2186"},"modified":"2023-09-01T13:23:31","modified_gmt":"2023-09-01T13:23:31","slug":"webuis-with-blazor","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/","title":{"rendered":"Web UIs with Blazor and possible use cases in industry"},"content":{"rendered":"\n<p>Blazor is a Microsoft framework for building interactive web frontends using C# instead of JavaScript. It was published in 2019 as part of .NET Core 3.0. Since then, it has been under constant development. For example, there will be further improvements when .NET 8 is released <a href=\"#[1]\">[1]<\/a>. The ecosystem of helpful components and libraries has also matured in parallel with Blazor\u2019s features. The framework has now proven its worth and left the initial hype behind. For this reason, the ways in which Blazor could be used in an industrial context should be reviewed and explained in more detail.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"c-statt-javascript-die-gestaltung-der-ui-076f5bcf-8fa9-4ab6-afbb-d83b95aca431\">C# instead of JavaScript \u2013 UI design<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@page \"\/counter\"\n\n&lt;PageTitle>Counter&lt;\/PageTitle>\n\n&lt;h1>Counter&lt;\/h1>\n\n&lt;p role=\"status\">Current count: @currentCount&lt;\/p>\n\n&lt;button class=\"btn btn-primary\" @onclick=\"IncrementCount\">Click me&lt;\/button>\n\n@code {\n    private int currentCount = 0;\n\n    private void IncrementCount()\n    {\n        currentCount++;\n    }\n}<\/pre>\n\n\n\n<p><em>Figure 1: Example of code using Razor syntax for Blazor website<\/em><\/p>\n\n\n\n<p><br>Blazor uses what is known as Razor syntax. This consists of HTML, special Razor markup and C#. As a C# developer, you can quickly find your way around it with basic HTML knowledge. With Blazor, JavaScript normally only plays a background role and is not directly used in most cases. Exceptions to this rule include, for example, enabling special interactions with the browser and accessing JavaScript libraries. However, there is a growing number of wrappers available, especially for popular JavaScript libraries, which are provided by the community.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hostingmodelle-von-blazor-3e68661c-4105-4686-8f4e-61f86cf2a4c7\">Blazor hosting models<\/h2>\n\n\n\n<p>There are three hosting models for Blazor apps, which determine how a Blazor app works, what features are available and what restrictions apply.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"blazor-server-serverside-rendering-04dc187e-690d-4432-a692-4ca9bac4a64d\">Blazor Server \u2013 server-side rendering<\/h3>\n\n\n\n<p>In this case, the website is generated dynamically in an ASP.NET Core app on the server and the HTML is sent to the browser. Rendering on the server provides the entire functionality of the backend. An active SignalR connection is required for each interaction between the browser and server. The latency of this network connection has a direct impact on the UI response time. In addition, the performance of the Blazor application is limited by the performance of the server, which makes having many simultaneous client connections costly, for example.<\/p>\n\n\n\n<p>This hosting model is suitable if&#8230; <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>applications serve a manageable number of users;<\/li>\n\n\n\n<li>server performance, network latency and offline scenarios do not play a role;<\/li>\n\n\n\n<li>there are special requirements that can only be implemented in the backend. Example: Authentication of users based on Windows login<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"321\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Grafik_1V-1.svg\" alt=\"\" class=\"wp-image-2250\"\/><figcaption class=\"wp-element-caption\"><em>Figure 2: Architecture of a Blazor Server app<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"blazor-webassembly-clientside-rendering-9f99ce07-6313-4438-af64-750b3850acd5\">Blazor WebAssembly \u2013 client-side rendering<\/h3>\n\n\n\n<p>The application can be downloaded from any web server to the browser together with the .NET runtime. This runtime is executed in the browser\u2019s WebAssembly environment, rendering the website locally. After downloading the entire app from the server, a Blazor WebAssembly app runs completely in the browser. However, the app\u2019s initial loading time is a few seconds as \u2013 depending on the app \u2013 a lot of data must be transferred (10 MB is required for Microsoft\u2019s template app alone). Blazor WebAssembly works in the same way as common single-page application (SPA) frameworks, such as React or Angular.<\/p>\n\n\n\n<p>Since the app runs completely in the browser, there is no server-side dependency. However, the app is restricted to the functionalities of the browser and the WebAssembly runtime, which limits interactions with local resources on the client (file system, etc.) and several .NET APIs, for example.<\/p>\n\n\n\n<p>This hosting model is suitable if&#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>no firewalls are preventing the app from being downloaded to the browser (DLLs!)<sup><a href=\"#1\">1<\/a><\/sup>;<\/li>\n\n\n\n<li>download size and start time are irrelevant or accepted by the user;<\/li>\n\n\n\n<li>a rich, interactive single-page application is required;<\/li>\n\n\n\n<li>all browser functionalities can be leveraged.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"315\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Grafik_2V.svg\" alt=\"\" class=\"wp-image-2244\"\/><figcaption class=\"wp-element-caption\"><em>Figure 3: Architecture of a Blazor WebAssembly app<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"blazor-hybrid-94311e43-ad05-4717-8911-626ce93004b6\">Blazor Hybrid<\/h3>\n\n\n\n<p>The Blazor app runs locally on the desktop (in .NET MAUI, WPF or Windows Forms) and is rendered to an embedded WebView control. The term \u201cHybrid\u201d refers to the combination of web technology (Blazor) and desktop or mobile frameworks. Since the app runs locally, it also has full access to the client\u2019s functionalities.<\/p>\n\n\n\n<p>This hosting model is suitable if&#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blazor components are to be reused on the desktop;<\/li>\n\n\n\n<li>desktop applications are to be gradually transitioned to web technology.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"407\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Grafik_3V.svg\" alt=\"\" class=\"wp-image-2240\"\/><figcaption class=\"wp-element-caption\"><em>Figure 4: Architecture of a Blazor Hybrid app<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>.NET 8, which will be released in the autumn of 2023, will introduce another hosting model that strikes a balance between Blazor Server and Blazor WebAssembly. The aim is to combine the performance benefits of rendering static content on the web server with the interactivity of single-page applications while reducing the app\u2019s loading time&nbsp;<a href=\"#[2]\">[2]<\/a>.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wo-kann-blazor-in-der-industrie-zum-einsatz-kommen-614cf0d6-6a39-4337-84b7-d49fed65f857\">How can Blazor be used in industry?<\/h2>\n\n\n\n<p>When evaluating practical use cases, we must consider the advantages of Blazor compared to other web UI frameworks, such as Angular or React.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blazor belongs to the ASP.NET Core universe and can therefore integrate and reuse existing .NET libraries.<\/li>\n\n\n\n<li>Since Blazor was developed for C# developers, it is designed for teams that specialised in .NET backend development.<\/li>\n\n\n\n<li>Blazor is well suited to projects with focus on the backend, implementing complex business logic and an extensive database. Example: Forms-over-data (FOD) applications with extensive forms but otherwise low UI functionality<\/li>\n<\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"anwendungsfall-1-hintergrundanwendung-mit-lokaler-managementoberflache-1acb95cc-4306-4a5b-b442-b7fc322585b7\">Use case 1: Background application with local management interface<\/h3>\n\n\n\n<p>A .NET application that runs on a computer as a service is to be assigned a simple, locally available UI that can be used to configure and administer the software.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium is-resized\"><img decoding=\"async\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Grafik_4V.svg\" alt=\"\" class=\"wp-image-2241\" style=\"height:500px\" height=\"500\"\/><figcaption class=\"wp-element-caption\"><em>Figure 5: Outline of the application in use case 1<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In this case, Blazor with the Blazor Server hosting model is recommended as components of the .NET background application can be easily accessed in the Blazor application. Abstraction layers such as a REST API are not necessary. Network issues caused by firewalls, high latency or lack of availability are excluded. There\u2019s no huge leap required to switch to Blazor, meaning that backend developers with limited knowledge of web technologies can also implement the simple web UI.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"anwendungsfall-2-informationssystem-87518c09-dad0-42c8-b8dc-ab10edc6da7c\">Use case 2: Information system<\/h3>\n\n\n\n<p>A system provides information for plant\/system maintenance. The UI needs to be available at several fixed stations and remotely on laptops or tablets in order to be able to access the data on site at the machine as well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"471\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Grafik_5V.svg\" alt=\"\" class=\"wp-image-2242\"\/><figcaption class=\"wp-element-caption\"><em>Figure 6: Outline of the application in use case 2<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Blazor WebAssembly is recommended in this case. To enable mobile access to a system, an offline scenario where the data can be read and processed locally \u2013 even without a connection \u2013 must be supported. The data is synchronised with the backend at a later date. A progressive web app (PWA) that can be installed locally can also be built using Blazor WebAssembly. The app start-up time is increased, but this is accepted in most cases in the industrial environment.<\/p>\n\n\n\n<p>In this scenario, it is essential to check the network connection between the web server and the end devices at the start. Are there any firewalls that prevent the application from downloading?<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"anwendungsfall-3-steuerungsrechner-9ff26237-1690-4267-8994-51bd49847f99\">Use case 3: Control computer<\/h3>\n\n\n\n<p>Control software requires a UI to operate a machine or process. The backend of the control software is extensive, while the scope of the UI is much smaller depending on the application.<\/p>\n\n\n\n<p>In this scenario, there is no clear recommendation. Factors to consider in the decision-making process include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>access to local resources;<\/li>\n\n\n\n<li>local or distributed access to the UI;<\/li>\n\n\n\n<li>scope of the UI.<\/li>\n<\/ul>\n\n\n\n<p>If it is imperative for the UI to access the control software\u2019s local resources, the only real option is Blazor Server. Using this hosting model, these resources can be integrated quickly and easily.<\/p>\n\n\n\n<p>If the UI does not require direct access to local resources, the type of UI access can be a deciding factor. If the UI is primarily accessed locally from the control computer, Blazor Server usually meets the requirements. If access to the UI is distributed, for example across several operator stations of a control room, then Blazor WebAssembly is the best option. In this case, network latency and the control computer\u2019s capacity do not affect the UI response time.<\/p>\n\n\n\n<p>If Blazor WebAssembly is chosen, the network must be checked like in use case 2.<\/p>\n\n\n\n<p>The more extensive the functions of the UI in a distributed scenario, the more important it is to consider established frameworks, such as Angular, React, etc., in addition to Blazor WebAssembly. For extensive UIs, a separate team member dedicated solely to this task will be promptly needed. In such cases, the choice of technology also depends on the skills of the available employees.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit-71656254-c355-4688-b227-4861dc1b682c\">Summary<\/h2>\n\n\n\n<p>In most cases, Blazor fulfils its main product promise and no JavaScript expertise is required. This means that the UI can also be created by teams with .NET skills that have limited web development experience.<\/p>\n\n\n\n<p>How Blazor is hosted \u2013 the chosen hosting model \u2013 depends on the use case. Three industrial use cases were presented as examples.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p id=\"1\"><sup>1<\/sup> Microsoft has acknowledged users\u2019 problems and is planning on using a different format to DLL for assembly files in .NET 8. Details and status: <a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/80807\">https:\/\/github.com\/dotnet\/runtime\/issues\/80807<\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"literatur-951a50e4-cccb-4ad5-83ed-fd8fc12d3f6a\">Sources<\/h2>\n\n\n\n<p id=\"[1]\">[1] Microsoft, \u201e.NET Blog,\u201c 13 Juni 2023. [Online]. Available: https:\/\/devblogs.microsoft.com\/dotnet\/asp-net-core-updates-in-dotnet-8-preview-5\/. [Zugriff am 21 Juni 2023].<\/p>\n\n\n\n<p id=\"[2]\">[2] Microsoft, \u201eGitHub,\u201c 14 Februar 2023. [Online]. Available: https:\/\/github.com\/dotnet\/aspnetcore\/issues\/46636. [Zugriff am 21 Juni 2023].<\/p>\n\n\n\n<p id=\"[3]\"><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Blazor is a Microsoft framework for creating interactive web frontends with C#. Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.<\/p>\n","protected":false},"author":164,"featured_media":2189,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[805],"tags":[21,33,828,888,889,890],"topics":[891,892],"class_list":["post-2186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-solutions","tag-net","tag-javascript","tag-c","tag-blazor","tag-hosting-modelle","tag-interaktive-web-frontends","topics-web-uis-mit-blazor","topics-web-uis-with-blazor"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry<\/title>\n<meta name=\"description\" content=\"Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry\" \/>\n<meta property=\"og:description\" content=\"Blazor is a Microsoft framework for creating interactive web frontends with C#. Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-01T09:12:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-01T13:23:31+00:00\" \/>\n<meta name=\"author\" content=\"Michael Ro\u00dfberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry\" \/>\n<meta name=\"twitter:description\" content=\"Blazor is a Microsoft framework for creating interactive web frontends with C#. Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Ro\u00dfberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/\",\"name\":\"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\",\"datePublished\":\"2023-09-01T09:12:45+00:00\",\"dateModified\":\"2023-09-01T13:23:31+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/f861d1528312de4bf45efe87dbcec45e\"},\"description\":\"Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\",\"width\":2000,\"height\":1333},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web UIs with Blazor and possible use cases in industry\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/f861d1528312de4bf45efe87dbcec45e\",\"name\":\"Michael Ro\u00dfberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Bewerbungsfoto_quadratisch-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Bewerbungsfoto_quadratisch-150x150.jpg\",\"caption\":\"Michael Ro\u00dfberg\"},\"description\":\"Michael Rossberg is a software developer at ZEISS Digital Innovation. He works primarily with .NET in the backend. Additionaly, he brings his knowledge from a degree in automation technology and five years as automation engineer to the Manufacturing Solutions area.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/enmichaelrossberg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry","description":"Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/","og_locale":"en_US","og_type":"article","og_title":"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry","og_description":"Blazor is a Microsoft framework for creating interactive web frontends with C#. Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/","og_site_name":"Digital Innovation Blog","article_published_time":"2023-09-01T09:12:45+00:00","article_modified_time":"2023-09-01T13:23:31+00:00","author":"Michael Ro\u00dfberg","twitter_card":"summary_large_image","twitter_title":"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry","twitter_description":"Blazor is a Microsoft framework for creating interactive web frontends with C#. Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.","twitter_misc":{"Written by":"Michael Ro\u00dfberg","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/","name":"ZEISS Digital Innovation Blog - Web UIs with Blazor and possible use cases in industry","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","datePublished":"2023-09-01T09:12:45+00:00","dateModified":"2023-09-01T13:23:31+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/f861d1528312de4bf45efe87dbcec45e"},"description":"Three deployment models are available for Blazor apps. The different architectures have a strong effect on the applications. This is explored by examples in industry.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","width":2000,"height":1333},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/webuis-with-blazor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/"},{"@type":"ListItem","position":2,"name":"Web UIs with Blazor and possible use cases in industry"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/f861d1528312de4bf45efe87dbcec45e","name":"Michael Ro\u00dfberg","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Bewerbungsfoto_quadratisch-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2023\/08\/Bewerbungsfoto_quadratisch-150x150.jpg","caption":"Michael Ro\u00dfberg"},"description":"Michael Rossberg is a software developer at ZEISS Digital Innovation. He works primarily with .NET in the backend. Additionaly, he brings his knowledge from a degree in automation technology and five years as automation engineer to the Manufacturing Solutions area.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/enmichaelrossberg\/"}]}},"author_meta":{"display_name":"Michael Ro\u00dfberg","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/enmichaelrossberg\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild-600x400.jpg","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Manufacturing Solutions<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Manufacturing Solutions<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">.NET<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">JavaScript<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Blazor<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Hosting-Modelle<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">interaktive Web-Frontends<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">.NET<\/span>","<span class=\"advgb-post-tax-term\">JavaScript<\/span>","<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">Blazor<\/span>","<span class=\"advgb-post-tax-term\">Hosting-Modelle<\/span>","<span class=\"advgb-post-tax-term\">interaktive Web-Frontends<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 3 years ago","modified":"Updated 3 years ago"},"absolute_dates":{"created":"Posted on September 1, 2023","modified":"Updated on September 1, 2023"},"absolute_dates_time":{"created":"Posted on September 1, 2023 9:12 am","modified":"Updated on September 1, 2023 1:23 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/2186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/users\/164"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/comments?post=2186"}],"version-history":[{"count":13,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/2186\/revisions"}],"predecessor-version":[{"id":2256,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/2186\/revisions\/2256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media\/2189"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media?parent=2186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/categories?post=2186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/tags?post=2186"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/topics?post=2186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}