Webapplikationen mit C# Programmieren?

2 Antworten

Die Wahl von .NET selbst ist in der Webentwicklung nicht unüblich. Dessen Nutzung ist vor allem im letzten Jahrzehnt gestiegen.

Blazor jedoch ist noch nicht so weit verbreitet, auch wenn es einige Unternehmen gibt, die es zumindest testweise für neue Projekte einsetzen. Ich habe zu ersterer Aussage einmal eine Statistik herausgesucht, die ein paar Zahlen liefert: Webtechsurvey: Blazor.

Wirklich interessant könnte Blazor werden, wenn es zu den verschiedenen Plattformen (Desktop, Mobile, Web) Renderer gäbe, die tatsächlich ausgereift genug für den produktiven Einsatz wären. Meines Wissens trifft das aber noch nicht zu. Die Bindings für den Einsatz auf mobilen Endgeräten wird beispielsweise noch immer als experimentell bezeichnet.

Wenn ja kann man damit ganz normale Websiten so wie amazon zb programmieren.

Amazon würde ich nicht als normale Webseite bezeichnen. Zumindest, wenn man den gesamten Unterbau mit einbezieht. Beantworten lässt sich diese Frage dennoch mit ja. Es gibt so einige E-Commerce-Systeme, die auf ASP.NET aufbauen und mit denen man ganz gut Webshops / Enterprise-Applikationen erstellen kann.

Für das Frontend würde ich jedoch nicht unbedingt auf Blazor (WASM) setzen, da die Ladezeiten durch das Herunterladen der notwendigen DLLs initial ziemlich lang sein können. An der Stelle muss man möglichst früh versuchen, viel zu komprimieren und in den Cache zu verschieben.

Und was sind die Vorteile und Nachteile bei dieser Technologie.

Vorteile:

  • Typsichere, objektorientierte Entwicklung mit C# (im Fall von Blazor kann das auch die Frontendimplementation mit einschließen)
  • Support durch Microsoft und eine zusätzlich große Community
  • Zu .NET gibt es eine Vielzahl an vorimplementierten Features, Tools, Bibliotheken, etc. die die Entwicklung komfortabel gestalten können

Vorteile, konkret auf Blazor bezogen:

  • WebAssembly: Die Ausführungsgeschwindigkeit ist höher, als bei JavaScript-Anwendungen
  • Einfacherer Datenaustausch zwischen Server und Client, wenn du für beide Seiten C# zur Entwicklung nutzt

Nachteile:

  • Für das gesamte .NET-Paket gilt, dass du für die Entwicklung eine schwergewichtigere Palette an Entwicklungstools benötigst, als bei anderen Technologien. Die Entwicklung kann auch teurer sein, wenn man an diverse Lizenzrechte oder Hostinggebühren denkt.
  • Deployments sind schwergewichtiger, nicht zuletzt da der Code in DLLs gebündelt wird.

Nachteile, konkret auf Blazor bezogen:

  • Im Vergleich zu JavaScript(-Frameworks) ist die Community zu Blazor kleiner
  • WebAssembly: Längere Ladezeiten und höherer Speicherverbrauch beim Client
  • Nicht jeder Browser/jede WebView unterstützt WebAssembly
  • Beim Blazor Server-Modell ist eine permanente Verbindung zwischen Client und Server notwendig, die über SignalR läuft (womit es je Server auch eine Standardbeschränkung auf eine bestimmte Anzahl an Verbindungskanälen gibt; Maßnahmen zur Skalierung führt Microsoft in seiner Dokumentation auf)
Oder gibt es bestimmte anwendungsfälle um das zu benutzen

Für Entwickler, die nur Kompetenzen in C# haben, wäre es definitiv eine JavaScript-Alternative.

Sobald es einen besseren Support für verschiedene Renderer gibt, könnte Blazor zudem genutzt werden, einfacher Anwendungen zu entwickeln, die auf verschiedene Plattformen portiert werden können.

Seinen Vorteil kann Blazor vor allem bei Webanwendungen ausspielen, bei denen der Nutzer nicht oft die Seite wechseln muss (bspw. Dashboards oder Spielen).


bullGuru 
Beitragsersteller
 14.12.2022, 07:12

Danke für deine Antwort, war sehr Hilfreich

0

Sehr üblich scheint es nicht zu sein - die allermeisten Stellenangebote, die ich im Zusammenhang mit .NET/C# und Webanwendungen finde, erfordern gute Kenntnisse in JavaScript und wenigstens einem der verbreiteten JavaScript-Frameworks. An ein Stellenangebot, das Blazor-Kenntnisse nachfragt, kann ich mich nicht erinnern.

(Eine gezielte Suche ergibt dann doch etliche offene Stellen, aber immer noch sehr wenige verglichen mit anderen Kombinationen)

-----

Man kann mit Blazor alles machen, was überhaupt mit einer "verteilten Web-Anwendung" möglich ist - genau dafür ist es ja entwickelt worden: https://learn.microsoft.com/de-de/aspnet/core/blazor/?view=aspnetcore-7.0

Vorteile:

  • einheitliche Programmiersprache und ziemlich einheitliche Frameworks für Front- und Backend (kein Umlernen)
  • Verfügbarkeit aller Tools von Microsoft Visual Studio für Microsoft-eigene Sprachen auch für Frontend (erleichtert die Entwicklung erheblich)

Nachteile:

  • nur für ziemlich neue Browser verwendbar
  • erfordert clientseitig ein ziemlich umfangreiches Framework, das - v. A. auf Nicht-Windows-Computern - erst noch heruntergeladen werden muss; JavaScript-Unterstützung ist in die üblichen Browser bereits eingebaut
  • bereits bestehende Projekte müssen vermutlich Seite für Seite neu aufgebaut werden - automatisierte Migrationsprogramme sind oft unzuverlässig (wenn für JavaScript -> C#/Blazor überhaupt eins existiert)
  • https://learn.microsoft.com/de-de/aspnet/core/blazor/?view=aspnetcore-7.0 erwähnt, dass ggf eine "Ausnahme" (PlatformNotSupportedException) ausgelöst wird, weshalb ich vermute, dass der Code nicht schon beim "Kompilieren" zurückgewiesen wird; hier muss der Programmierer aufpassen, welche Funktionen er verwendet

Anwendungsfälle: Wenn es nach Microsofts Blazor-Team ginge, vermutlich sämtliche Web-Anwendungen. Für Software-Firmen: Erstellen von Web-Anwendungen, wenn man genügend C#/.NET-Experten hat, aber zu wenige JavaScript-Frontend-Entwickler; aus Programmierersicht: wenn man ein C#/.NET-Experte ist, aber kein JavaScript-Experte.

Woher ich das weiß:Recherche