Einfach und schnell, Blazor-Libraries im Vergleich

Was ist Blazor?

Blazor ist ein neuer Ansatz von Microsoft, um weborientierte Anwendungen zu realisieren. Es bietet sowohl einen serverseitigen als auch einen clientseitigen Anwendungsstil. Bei der serverseitigen Variante von Blazor handelt es sich um ein Zusammenspiel der Technologien .NET Core, Web-Socket und SignalR zur Realisierung von Anwendungen. Beim clientseitigen Ansatz liegt der Schwerpunkt im Webbrowser auf WebAssembly, eine neu aufkommende Technologie für das Internet. Bei Blazor WebAssembly wird auch oft von Single Page Application (SPA) oder Progressive Web Apps (PWA) gesprochen. Konzepte, die mit JavaScript-Frameworks wie Angular, React oder Vue.js bereits geläufig sind.

Neue Technologie, gute Libraries?

Die serverseitige Variante von Blazor wurde im September 2019 veröffentlicht, die clientseitige Variante folgte dieses Jahr im Mai. Im Open-Source als auch im kostenpflichtigen Bereich gibt es mehrere Anbieter, die zwischenzeitlich auch UI-Libraries für Blazor anbieten.
Mit den drei UI Libraries haben wir bereits Erfahrungen sammeln können:

Unser Vergleich zwischen Telerik UI for Blazor, Syncfusion Blazor UI component library und Material Design components for Blazor

Telerik UI for Blazor

Das Unternehmen Progress beschäftigt sich seit Jahren mit der Erarbeitung von UI-Komponenten. Progress bietet seine Komponenten für mehrere Plattformen an, dadurch sind die Telerik- Komponenten in vielen .NET-Projekten anzutreffen. Sie bieten eine immense Anzahl von Komponenten, aber wie sieht es mit Blazor aus? Stand jetzt (August 2020) bieten sie eine UI Library an und arbeiten beständig daran, den Umfang ihrer Komponenten für Blazor zu vergrössern. Dokumentationen werden ergänzt und sind verständlich. Der Support reagiert schnell. Im Vergleich zu Syncfusion ist die Bereitstellung neuer Features bei Telerik langsamer. Telerik hat in diesem Bereich das Potential sich zu verbessern.

Die Abbildung trägt den Titel Explore our Native UI Blazor Components und zeigt die Möglichkeiten von Telerik UI for Blazor.

Ein für uns wichtiger Punkt sind die Style-Guidelines der Themes. Telerik bietet zum Beispiel das Material-Design an, die Detailtreue zur Original-Spezifikation ist jedoch verbesserungsbedürftig.

Der Preis liegt nur für die Blazor-Komponenten (mit Priority Support) bei 999$ pro Jahr und Entwickler (Stand August 2020). Ab der DevCraft UI .NET Subscription sind die Komponenten für Blazor enthalten.

Vorteile

  • Support bei Fragestellungen
  • Qualität und Bekanntheit
  • Gute und übersichtliche Dokumentation
  • Demo-Projekte zur besseren Einarbeitung
  • Die Lizenz DevCraft UI .NET enthält Blazor Komponenten
  • Grosse Auswahl von Themes

Nachteile

  • Starke Einschränkungen bei der Erweiterung von Komponenten
  • Material Design Theme setzt die Spezifikation des Originals nicht vollständig um
  • Kosten pro Entwickler und pro Jahr

Syncfusion Blazor UI component library

Auch diese Firma ist bekannt. Die Vielfalt an Komponenten für verschiedenste Technologien ist sehr gross. Die Menge an Funktionalität ist auch deutlich bei Blazor zu sehen. Folgende Abbildung zeigt eine Übersicht der aktuellen Komponenten für Blazor (Stand August 2020):

Die Abbildung zeigt eine Übersicht von den aktuellen Komponenten für Blazor.

Syncfusion vermittelt ein starkes Gefühl von Qualität und Stabilität. Die Dokumentationen und Demos sind umfänglich und zeigen gut auf, was damit möglich ist. Der Support hilft auch bei Fragen und Verbesserungsvorschlägen.

Der Preis liegt nur für die Blazor-Komponenten, beim Lizenztyp Individual Platforms, im gleichen Bereich wie Telerik, bei 995$ pro Jahr und Entwickler (Stand August 2020). Ab den Essential Studio Enterprise Editions sind alle Plattformen enthalten. Interessant am Lizenzierungsmodell ist auch, dass Syncfusion Projekt-Lizenzen anbietet.

Vorteile

  • Grosse Auswahl von einsetzbaren Komponenten
  • Support
  • Qualität und Bekanntheit
  • Demo-Projekte zur besseren Einarbeitung

Nachteile

  • Einschränkungen für Code-Erweiterungen
  • Kosten pro Entwickler und pro Jahr

MatBlazor

Zum Schluss kommen wir noch zu einem Open-Source-Projekt. MatBlazor ist eine Komponenten-Library, die stark durch die Community gewachsen ist. Das Interessante daran ist, dass diese Library auf der «originalen» Material Components-Library (https://github.com/material- components/material-components-web-components) aufbaut.

Die Abbildung zeigt die momentan verfügbaren Komponenten von MatBlazor.

Auch bei MatBlazor gibt es Potential zur Verbesserung. Zum Beispiel entsprechen die Validierungen nicht der Material Design Spezifikation. Nachdem wir uns damit auseinandergesetzt haben, fanden wir ein Weg, wie wir vom «originalen» Material Design die Validierung verwenden können. Da es Open-Source ist und eine gewisse Flexibilität bietet, können solche Erkenntnisse ausprobiert und eingearbeitet werden.

Der Umfang orientiert sich an der Material Design Spezifikation und mit den Demos kann man sich sehr schnell in das Themengebiet einarbeiten. Komponenten wie Charts, Hierarchie-Grids oder File- Viewers gibt es nicht. Der Support lebt von der Community. In diesem Bereich ist Geben und Nehmen die Devise. Statt Wünsche zu äussern, kann man diese einarbeiten und als Pull Request zur Verfügung stellen. Je nach Engagement kann dies auch schnell den Aufwand einer Entwicklerlizenz von Telerik oder Syncfusion erreichen.

Vorteile

  • Flexibilität und Code-Aufbau
  • Community-Support
  • Qualität
  • Konzept mit Einbezug der «originalen» Material Design Spezifikation
  • Demos vorhanden
  • Open-Source

Nachteile

  • Optimierungsbedarf im Bereich des Zusammenspiels von Material und MatBlazor
  • Keine zusätzlichen Komponenten wie Charts, WYSIWYG-Editoren oder Reporting- Komponenten
  • Implizite Label – Ansatz im HTML Output ab Version 2.6.0

Fazit

Alle Komponenten erfüllen grundsätzlich ihren Zweck. Welche jetzt zum Einsatz kommen soll, ist jedoch vom verfügbaren Budget und der Situation abhängig. Entsteht eine Applikation mit umfangreichen Features und Ansichten, ist Syncfusion eine Option. Soll es schnell und einfach gehen, mit Auswertungen und Reporting, ist Telerik eine Variante. Soll eine Anwendung mit einheitlichem Erscheinungsbild und wenig Aufwand ohne Auswertungen und Reporting entstehen, dann ist MatBlazor ein Ansatz.