{"id":3554,"date":"2023-09-01T08:21:55","date_gmt":"2023-09-01T08:21:55","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=3554"},"modified":"2024-02-07T10:15:50","modified_gmt":"2024-02-07T10:15:50","slug":"web-uis-mit-blazor","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/","title":{"rendered":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie"},"content":{"rendered":"\n<p>Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# statt mit JavaScript zu erstellen. Es wurde 2019 im Rahmen von .NET Core 3.0 ver\u00f6ffentlicht. Seitdem wird es konstant weiterentwickelt. So wird es beispielsweise auch mit .NET 8 weitere Verbesserungen geben <a href=\"#[1]\">[1]<\/a>. Parallel zu den Features von Blazor reift auch das \u00d6kosystem an hilfreichen Komponenten und Bibliotheken. Mittlerweile hat sich das Framework bew\u00e4hrt und den anf\u00e4nglichen Hype hinter sich gelassen. Daher soll nachtr\u00e4glich genauer betrachtet und erl\u00e4utert werden wo Blazor ggf. im industriellen Kontext eingesetzt werden kann.<\/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# statt JavaScript \u2013 Die Gestaltung der UI<\/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>Abbildung 1: Codebeispiel mit Razor-Syntax f\u00fcr eine Blazor-Website<\/em><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Blazor verwendet die sogenannte Razor-Syntax. Diese besteht aus HTML, speziellem Razor-Markup und C#. Mit Grundkenntnissen in HTML findet man sich darin auch als C#-Entwickler schnell zurecht. JavaScript spielt bei Blazor im Normalfall nur im Hintergrund eine Rolle und wird in den meisten F\u00e4llen nicht direkt eingesetzt. Ausnahmen von dieser Regel sind z.B. spezielle Interaktionen mit dem Browser oder um JavaScript-Bibliotheken anzusprechen. Gerade f\u00fcr beliebte JavaScript-Bibliotheken gibt es jedoch auch immer h\u00e4ufiger entsprechende Wrapper, welche durch die Community bereitgestellt werden.<\/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\">Hosting-Modelle von Blazor<\/h2>\n\n\n\n<p>F\u00fcr Blazor-Apps gibt es drei Hosting-Modelle, die bestimmen, wie eine Blazor-App funktioniert, welche Funktionen zur Verf\u00fcgung stehen und welche Einschr\u00e4nkungen es gibt.<\/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 diesem Fall wird die Webseite in einer ASP.NET Core-App auf dem Server dynamisch erzeugt und das HTML an den Browser \u00fcbertragen. Durch das Rendering auf dem Server steht die gesamte Funktionalit\u00e4t des Backends zur Verf\u00fcgung. F\u00fcr jede Interaktion zwischen Browser und Server wird eine aktive SignalR-Verbindung ben\u00f6tigt. Die Latenz dieser Netzwerkverbindung wirkt sich direkt auf die Reaktionszeit der UI aus. Au\u00dferdem wird die Performance der Blazor-Anwendung durch die Performance des Servers begrenzt, was zum Beispiel viele gleichzeitige Client-Verbindungen kostspielig macht.<\/p>\n\n\n\n<p>Dieses Hosting-Modell ist gut geeignet, wenn \u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Anwendungen eine \u00fcberschaubare Anzahl von Nutzern bedienen.<\/li>\n\n\n\n<li>Serverperformance, Netzwerklatenz und Offline-Szenarios keine Rolle spielen.<\/li>\n\n\n\n<li>spezielle Anforderungen bestehen, die nur im Backend umgesetzt werden k\u00f6nnen. Beispiel: &nbsp;Authentifizierung von Usern auf der Basis des Windows-Logins<\/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\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Grafik_1V-1.svg\" alt=\"\" class=\"wp-image-3734\"\/><figcaption class=\"wp-element-caption\"><em>Abbildung 2: Architektur einer 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>Die Anwendung wird zusammen mit der .NET-Runtime von einem beliebigen Webserver in den Browser geladen. Diese Runtime wird in der WebAssembly-Umgebung des Browsers ausgef\u00fchrt und rendert anschlie\u00dfend die Webseite lokal. Nach dem Download der gesamten App vom Server laufen Blazor WebAssembly-Apps somit komplett im Browser. Das initiale Laden der App dauert jedoch einige Sekunden, da hier \u2013 je nach App \u2013 viele Daten \u00fcbertragen werden m\u00fcssen (bereits f\u00fcr die Template-App von Microsoft sind es 10 MB). Blazor WebAssembly entspricht der Funktionsweise von g\u00e4ngigen Single Page Application-Frameworks (SPA) wie React oder Angular.<\/p>\n\n\n\n<p>Da die App komplett im Browser l\u00e4uft, ist sie nicht auf einen Server angewiesen, aber auf die Funktionalit\u00e4ten des Browsers und der WebAssembly-Runtime beschr\u00e4nkt, was zum Beispiel die Interaktion mit lokalen Ressourcen auf dem Client (Dateisystem etc.) und einige .NET-APIs limitiert.<\/p>\n\n\n\n<p>Dieses Hosting-Modell ist gut geeignet, wenn \u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>keine Firewall den Download der App (DLLs!) in den Browser verhindert.<a id=\"_ftnref1\" href=\"#_ftn1\"><sup>1<\/sup><\/a><\/li>\n\n\n\n<li>Download-Gr\u00f6\u00dfe und Startzeit irrelevant sind oder vom Benutzer akzeptiert werden.<\/li>\n\n\n\n<li>eine reichhaltige und interaktive Single Page Application ben\u00f6tigt wird.<\/li>\n\n\n\n<li>alle Funktionalit\u00e4ten im Browser realisierbar sind.<\/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\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Grafik_2V.svg\" alt=\"\" class=\"wp-image-3727\"\/><figcaption class=\"wp-element-caption\"><em>Abbildung 3: Architektur einer 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>Die Blazor-App wird lokal auf dem Desktop (in .NET MAUI, WPF oder Windows Forms) ausgef\u00fchrt und in einem eingebetteten WebView gerendert. Die Wortwahl \u2018Hybrid\u2019 bezieht sich also auf die Verschmelzung von Webtechnologie (Blazor) mit Desktop- oder Mobile-Frameworks. Da die App lokal l\u00e4uft, hat sie auch vollen Zugriff auf Funktionalit\u00e4ten des Clients.<\/p>\n\n\n\n<p>Dieses Hosting-Modell ist gut geeignet, wenn \u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blazor-Komponenten auf dem Desktop wiederverwendet werden sollen<\/li>\n\n\n\n<li>Desktop-Anwendungen Schritt f\u00fcr Schritt auf Webtechnologie umgestellt werden sollen<\/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\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Grafik_3V.svg\" alt=\"\" class=\"wp-image-3728\"\/><figcaption class=\"wp-element-caption\"><em>Figure 4:Architektur einer 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>Das im Herbst 2023 erscheinende .NET 8 wird ein weiteres Hosting-Modell einf\u00fchren, das einen Mittelweg zwischen Blazor Server und WebAssembly darstellt. Damit sollen Performance-Vorteile des Renderns von statischen Inhalten auf dem Webserver mit der Interaktivit\u00e4t von Single Page Applications verbunden werden und die Ladezeit der Apps verringert werden&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\">Wo kann Blazor in der Industrie zum Einsatz kommen?<\/h2>\n\n\n\n<p>F\u00fcr die Bewertung von sinnvollen Anwendungsf\u00e4llen m\u00fcssen wir uns die Vorteile von Blazor gegen\u00fcber anderen Web-UI-Frameworks wie Angular oder React ansehen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blazor geh\u00f6rt zum ASP.NET Core-Universum und kann damit vorhandene .NET-Bibliotheken einbinden und weiterverwenden.<\/li>\n\n\n\n<li>Da Blazor f\u00fcr C#-Entwickler entwickelt wurde, passt es zu Teams, deren Kompetenzen bisher vor allem im .NET-Backend-Bereich liegen.<\/li>\n\n\n\n<li>Blazor passt gut zu Projekten, in denen der Fokus eher auf dem Backend mit komplexer Gesch\u00e4ftslogik und umfangreicher Datenbank liegt. Beispiel: Forms-over-Data-Anwendungen mit umfangreichen Formularen, aber ansonsten geringer UI-Funktionalit\u00e4t<\/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\">Anwendungsfall 1: Hintergrund-Anwendung mit lokaler Management-Oberfl\u00e4che<\/h3>\n\n\n\n<p>Eine .NET-Anwendung, die auf einem Rechner als Dienst l\u00e4uft, soll eine einfache lokal verf\u00fcgbare UI bekommen, mit der die Software konfiguriert und administriert werden kann.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"467\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Grafik_4V.svg\" alt=\"\" class=\"wp-image-3724\" style=\"width:500px;height:undefinedpx\"\/><figcaption class=\"wp-element-caption\"><em>Abbildung 5: Skizze der Anwendung in Anwendungsfall 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>F\u00fcr diesen Fall empfiehlt sich Blazor mit dem Hosting-Modell Blazor Server, da in der Blazor-Anwendung einfach auf Komponenten der .NET-Hintergrundanwendung zugegriffen werden kann. Abstraktionsschichten wie eine REST-API sind nicht n\u00f6tig. Netzwerkprobleme durch Firewall, hohe Latenz oder fehlende Verf\u00fcgbarkeit sind ausgeschlossen. Durch die geringe H\u00fcrde beim Umstieg auf Blazor k\u00f6nnen auch Backend-Entwickler mit geringen Kenntnissen von Web-Techniken die einfache Web-UI umsetzen.<\/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\">Anwendungsfall 2: Informationssystem<\/h3>\n\n\n\n<p>Ein System stellt Informationen f\u00fcr Anlagenwartung zur Verf\u00fcgung. Die UI soll an mehreren festen Stationen und mobil auf Laptop oder Tablet zur Verf\u00fcgung stehen, um auch vor Ort an der Maschine auf die Daten zugreifen zu k\u00f6nnen.<\/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\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Grafik_5V.svg\" alt=\"\" class=\"wp-image-3725\"\/><figcaption class=\"wp-element-caption\"><em>Abbildung 6: Skizze der Anwendung in Anwendungsfall 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>Hier empfiehlt sich Blazor WebAssembly. F\u00fcr den mobilen Zugriff in einer Anlage muss ein Offline-Szenario unterst\u00fctzt werden, bei dem die Daten auch ohne Verbindung lokal gelesen und bearbeitet werden k\u00f6nnen. Die Daten werden zu einem sp\u00e4teren Zeitpunkt mit dem Backend synchronisiert. Blazor WebAssembly unterst\u00fctzt auch die Funktionen f\u00fcr eine Progressive Web App (PWA), die sich lokal installieren l\u00e4sst. Die Startdauer der App ist erh\u00f6ht, wird aber im Industrieumfeld in den meisten F\u00e4llen akzeptiert.<\/p>\n\n\n\n<p>Die Netzwerkverbindung zwischen Webserver und den Endger\u00e4ten ist in diesem Szenario unbedingt zu Beginn zu kl\u00e4ren. Gibt es Firewalls, die den Download der Anwendung verhindern?<\/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\">Anwendungsfall 3: Steuerungsrechner<\/h3>\n\n\n\n<p>Eine Steuerungssoftware ben\u00f6tigt eine UI, um eine Maschine oder einen Prozess zu bedienen. Das Backend der Steuerungssoftware ist umfangreich, die UI hat je nach Anwendungsfall einen kleineren bis mittleren Umfang.<\/p>\n\n\n\n<p>In diesem Szenario gibt es keine klare Empfehlung. Faktoren bei der Entscheidung sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zugriff auf lokale Ressourcen<\/li>\n\n\n\n<li>Lokaler oder verteilter Zugriff auf die UI<\/li>\n\n\n\n<li>Umfang der UI<\/li>\n<\/ul>\n\n\n\n<p>Muss die UI zwingend auf lokale Ressourcen des Steuerungsrechners zugreifen, kommt man um Blazor Server kaum herum. Damit lassen sich diese Ressourcen einfach und schnell einbinden.<\/p>\n\n\n\n<p>Ist kein direkter Zugriff auf lokale Ressourcen aus der UI n\u00f6tig, ist die Art des UI-Zugriffs eine Entscheidungshilfe. Wird auf die UI vorrangig lokal vom Steuerungsrechner aus zugegriffen, erf\u00fcllt Blazor Server meist die Anforderungen. Wird verteilt auf die UI zugegriffen, zum Beispiel von mehreren Bedienstationen eines Leitstands aus, dann ist Blazor WebAssembly die bessere Wahl. Dann haben Netzwerklatenz und Auslastung des Steuerungsrechners keinen Einfluss auf die Reaktionszeit der UI.<\/p>\n\n\n\n<p>F\u00e4llt die Wahl auf Blazor WebAssembly, ist wie in Anwendungsfall 2 das Netzwerk zu \u00fcberpr\u00fcfen.<\/p>\n\n\n\n<p>Je umfangreicher die Funktionen der UI in einem verteilten Szenario, desto mehr sollte man neben Blazor WebAssembly auch die etablierten Frameworks wie Angular, React &amp; Co in Betracht ziehen. F\u00fcr umfangreiche UIs wird schnell ein eigenes Teammitglied ben\u00f6tigt, das sich ausschlie\u00dflich darum k\u00fcmmert. In diesen F\u00e4llen h\u00e4ngt die Wahl der Technologie auch davon ab, welche Kompetenzen die verf\u00fcgbaren Mitarbeiter besitzen.<\/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\">Fazit<\/h2>\n\n\n\n<p>In den meisten F\u00e4llen erf\u00fcllt Blazor sein zentrales Produktversprechen, es ist kein Knowhow in JavaScript erforderlich. Dadurch kann die UI auch durch Teams mit .NET-Hintergrund erstellt werden, die bisher noch nicht tief in die Webentwicklung eingestiegen sind.<\/p>\n\n\n\n<p>Welche \u201eGeschmacksrichtung\u201c von Blazor, welches Hosting-Modell gew\u00e4hlt wird, h\u00e4ngt vom Anwendungsfall ab. Exemplarisch wurden drei Anwendungsf\u00e4lle aus der Industrie vorgestellt.<\/p>\n\n\n\n<div style=\"height:70px\" 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><a id=\"_ftn1\" href=\"#_ftnref1\"><sup>1<\/sup><\/a> Microsoft hat die Probleme der Nutzer erh\u00f6rt und plant in .NET 8 ein anderes Format f\u00fcr die Assembly-Dateien anstatt von DLL. Details und 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\">Literatur<\/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<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.<\/p>\n","protected":false},"author":161,"featured_media":3558,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[656],"tags":[156,693,741,743,744,746,747,748],"topics":[745,770],"class_list":["post-3554","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-solutions","tag-ui","tag-c-2","tag-blazor","tag-interaktive-web-frontends","tag-hosting-modelle","tag-web-uis","tag-web-frontends","tag-industrie","topics-web-uis-mit-blazor","topics-manufacturing-solutions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie - Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.\" \/>\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\/de\/web-uis-mit-blazor\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie\" \/>\n<meta property=\"og:description\" content=\"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-01T08:21:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-07T10:15:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1333\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michael Ro\u00dfberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie\" \/>\n<meta name=\"twitter:description\" content=\"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Ro\u00dfberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/\",\"name\":\"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie - Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg\",\"datePublished\":\"2023-09-01T08:21:55+00:00\",\"dateModified\":\"2024-02-07T10:15:50+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b757e0f104e3655ec043238fc64b3120\"},\"description\":\"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-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\/de\/web-uis-mit-blazor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b757e0f104e3655ec043238fc64b3120\",\"name\":\"Michael Ro\u00dfberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Bewerbungsfoto_quadratisch-e1691061552986-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Bewerbungsfoto_quadratisch-e1691061552986-150x150.jpg\",\"caption\":\"Michael Ro\u00dfberg\"},\"description\":\"Michael Ro\u00dfberg ist Softwareentwickler bei ZEISS Digital Innovation. Er arbeitet vorrangig mit .NET im Backend. Daneben bringt er im Bereich Manufacturing Solutions sein Wissen aus einem Studium der Automatisierungstechnik und f\u00fcnf Jahren als Automatisierungsingenieur ein.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/michaelrossberg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie - Digital Innovation Blog","description":"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.","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\/de\/web-uis-mit-blazor\/","og_locale":"de_DE","og_type":"article","og_title":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie","og_description":"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2023-09-01T08:21:55+00:00","article_modified_time":"2024-02-07T10:15:50+00:00","og_image":[{"width":2000,"height":1333,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","type":"image\/jpeg"}],"author":"Michael Ro\u00dfberg","twitter_card":"summary_large_image","twitter_title":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie","twitter_description":"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.","twitter_image":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Michael Ro\u00dfberg","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/","name":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie - Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Beitragsbild.jpg","datePublished":"2023-09-01T08:21:55+00:00","dateModified":"2024-02-07T10:15:50+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b757e0f104e3655ec043238fc64b3120"},"description":"Blazor ist ein Framework von Microsoft, um interaktive Web-Frontends mit C# zu erstellen. F\u00fcr Blazor-Apps sind drei Bereitstellungs-Modelle m\u00f6glich. Die unterschiedlichen Architekturen wirken sich stark auf die Anwendungsf\u00e4lle aus. Das wird anhand von Beispielen in der Industrie beleuchtet.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-blazor\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/web-uis-mit-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\/de\/web-uis-mit-blazor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Web-UIs mit Blazor und m\u00f6gliche Anwendungsf\u00e4lle in der Industrie"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b757e0f104e3655ec043238fc64b3120","name":"Michael Ro\u00dfberg","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Bewerbungsfoto_quadratisch-e1691061552986-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2023\/08\/Bewerbungsfoto_quadratisch-e1691061552986-150x150.jpg","caption":"Michael Ro\u00dfberg"},"description":"Michael Ro\u00dfberg ist Softwareentwickler bei ZEISS Digital Innovation. Er arbeitet vorrangig mit .NET im Backend. Daneben bringt er im Bereich Manufacturing Solutions sein Wissen aus einem Studium der Automatisierungstechnik und f\u00fcnf Jahren als Automatisierungsingenieur ein.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/michaelrossberg\/"}]}},"author_meta":{"display_name":"Michael Ro\u00dfberg","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/michaelrossberg\/"},"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\/de\/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\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">UI<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">C#<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Blazor<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">interaktive Web-Frontends<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Hosting-Modelle<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Web-UIs;<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Web-Frontends<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Industrie<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">UI<\/span>","<span class=\"advgb-post-tax-term\">C#<\/span>","<span class=\"advgb-post-tax-term\">Blazor<\/span>","<span class=\"advgb-post-tax-term\">interaktive Web-Frontends<\/span>","<span class=\"advgb-post-tax-term\">Hosting-Modelle<\/span>","<span class=\"advgb-post-tax-term\">Web-UIs;<\/span>","<span class=\"advgb-post-tax-term\">Web-Frontends<\/span>","<span class=\"advgb-post-tax-term\">Industrie<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 3\u00a0Jahren ago","modified":"Updated 2\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on September 1, 2023","modified":"Updated on Februar 7, 2024"},"absolute_dates_time":{"created":"Posted on September 1, 2023 8:21 a.m.","modified":"Updated on Februar 7, 2024 10:15 a.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/3554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=3554"}],"version-history":[{"count":25,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/3554\/revisions"}],"predecessor-version":[{"id":4019,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/3554\/revisions\/4019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/3558"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=3554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=3554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=3554"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=3554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}