Wisej.NET

Eintrag zuletzt aktualisiert am: 19.02.2025
 siehe auch https://wisej.com

Wisej.NET https://wisej.com ist das erste von vier GUI-Frameworks in dieser Serie, das nicht von Microsoft stammt. Wisej.NET (von 2016 bis 2022 in den Versionen 1.x und 2.x nur Wisej genannt) ist ein Rapid Application Development-Werkzeug für HTML-basierte Web- und Hybridanwendungen der 1988 gegründeten amerikanischen Firma Ice Tea Group LLC mit Sitz in Washington DC https://www.iceteagroup.com, welches aus der Ecke von Gupta/Centura stammt, sich aber seit vielen Jahren auf dem .NET-Markt etabliert hat.

Wisej.NET hat die gleiche Grundidee wie Blazor Server, d.h. die Anwendung läuft auf dem Server, empfängt Benutzeraktionen und sendet Änderungen der HTML-Oberfläche zum Webbrowser. Der Chefentwickler von Wisej.NET, Gianluca Pivato, hält darauf sogar ein Patent unter dem Titel "Pixel perfect real-time web application framework" https://patents.google.com/patent/US10409565B2/en, bei dem man sich fragen kann, ob Blazor Server nicht dagegen verstößt.

Auf dem Server lief Wisej.NET in Version 1.0 und 2.0 nur auf dem klassischen .NET Framework auf Windows, seit Version 3.0 ist auch das moderne .NET möglich mit Windows oder Linux als Server. Der Serverprozess basiert dann auf ASP.NET Core. Als Programmiersprachen sind neben C# auch Visual Basic .NET und F# möglich.

Auf der Clientseite setzt Wisej.NET auf das von der deutschen Firma 1&1 entwickelte JavaScript-basierte Webfrontendframework qooxdoo (gesprochen "kuckst du") https://qooxdoo.org. Bei der Datenübertragung zwischen Server und Client ist neben WebSockets auch HTTP(S) möglich. Die Übertragung der DOM-Unterschiede vom Server zum Client ist effizienter als bei Blazor Server. Allerdings wird initial beim ersten Seitenaufruf mehr in den Browser geladen. Genau wie Blazor Server ist Wisej.NET aber nicht offline-fähig und alle Nutzer teilen sich die Serverressourcen. Wisej.NET kommt aber besser mit einem Reload im Browser klar als Blazor Server.

Wisej.NET bietet bei der Entwicklung einen in Visual Studio integrierten WYSWYG-Designer, der dem Windows Forms-Designer sehr ähnlich ist und genau wie bei Windows Forms wird Programmcode und kein Markup von dem Designer generiert. Tatsächlich gibt es auch die Möglichkeit, bestehende Windows Forms-Anwendungen nach Wisej.NET zu migrieren, also klassische Windows-Desktop-Anwendungen in den Browser und auf Mobilgeräte zu bringen. Das zugehörige Werkzeug kann man aber nicht erwerben; die Migration wird als Dienstleistung angeboten, an deren Ende der Auftraggeber eine lauffähige Wisej.NET-Anwendung inklusive Quellcode erhält. In unseren Gefilden macht diese Migration die Firma Fecher GmbH https://www.fecher.de. Auf der Website https://www.modernizing-applications.de bietet Fecher die Migration nach Wisej.NET nicht nur von Windows Forms, sondern auch von WPF, Visual Basic 6, Microsoft Access und Gupta an.

Wisej.NET liefert zahlreiche Steuerelemente im Grundpaket (.NET-Namensraum Wisej.Web) oder als Extension, auch höherwertige Steuerelemente wie ein editierbares Datagrid, verschiedene Diagrammtypen, einen Kalender, ein Ribbon, Anzeige von Microsoft Office-Dokumenten sowie ein Theming. Die Steuerelemente kann man sich auf einer webbasierten Demonstrationsseite ansehen: https://wisej-demobrowser.azurewebsites.net/

Als Entwicklerinnen und Entwickler muss man sich bei der Webentwicklung mit Wisej.NET nicht mit HTML und CSS auseinandersetzen, denn man erhält eine komponentenbasierte Abstraktion von den Webtechniken, aus denen das Document Object Model generiert wird. Freilich kann man Inseln von HTML erschaffen; dafür gibt es Wisej.NET-Steuerelemente wie HtmlPanel und einen Extender für JavaScript und CSS. Entwicklerinnen und Entwickler können also auch selber JavaScript schreiben.

Es gibt zwar keine dedizierte Drittanbieterkomponentenbibliothek für Wisej.NET, aber das GUI-Framework kann beliebige Web-Komponentenbibliotheken nutzen, die auf HTML, CSS und JavaScript basieren (z.B. jQuery, DevExpress DevExtreme, Syncfusion EJ1/EJ2, Telerik Kendo UI, Infragistics Ignite UI und TextControl). Es gibt sogenannte Premium Extensions https://docs.wisej.com/extensions/premium-extensions/overview, die auch hier die Integration vereinfachen. Genau wie Microsoft mit seinen Smart Components https://devblogs.microsoft.com/dotnet/introducing-dotnet-smart-components arbeitet auch Wisej.NET an der KI-Integration in die Steuerelemente: https://wisej.ai

Beim Deployment bietet Wisej.NET neben dem Deployment auf einen Webserver auch ein Self-Hosting als ausführbare Datei an. AOT-Kompilierung ist bei Wisej.NET nicht möglich.

Genau wie Blazor kann man auch Wisej.NET in .NET MAUI-Anwendungen einbetten und dann ohne Webbrowser direkt auf Windows, macOS, iOS, Android und Tizen betreiben (Wisej.NET Hybrid, siehe https://docs.wisej.com/hybrid). Alternativ gibt es auch noch ein älteres Wisej.NET Mobile zum Betrieb auf iOS und Android ohne .NET MAUI direkt mit Xcode und Android Studio: https://docs.wisej.com/mobile. Diese Wisej.NET-Anwendungen laufen dann auch offline ohne einen Webserver.

Wisej.NET hat einige namhafte Kunden (siehe Case Studies unter https://wisej.com/case-studies/ und https://madewithwisej.com) und ist regelmäßig auf deutschen Entwicklerkonferenzen vertreten. Man braucht für jeden Entwickler und jede Entwicklerin eine Lizenz, die je nach Leistungsumfang zwischen 1.190 und 1.690 Dollar kostet, wobei es Mengenrabatte gibt. Für nicht-kommerzielle Zwecke gibt es eine kostenfreie Community-Lizenz. Für den Betrieb der Wisej.NET-Anwendung ist eine Serverlizenz erforderlich. Dabei reicht das Spektrum von einer kostenfreien Lizenz für bis zu 100 Clients ohne Premium Extensions und ohne Support bis hin zu einer Lizenz für rund 29.000 Dollar für bis zu 10.000 Clients. Details findet man unter https://wisej.com/developer-licenses.

Versionen

Erste Version unter dem Namen Wisej: 2016
Version 3 unter dem Namen Wisej.NET seit April 2022

Eigenschaften:

  • Server: .NET + C# + alle .NET APIs auf dem server
  • Client: HTML, CSS + JavaScript + 1&1 Qooxdo Webframework
  • Synchronisierung Client und Server
  • Events vom Browser zum Server
  • DOM diff vom Server zum Browser
  • Protokoll: Web Sockets (WiseJ.NET: auch HTTP)
  • Interop C# <-> JavaScript
  • Auch kein Offline-Support

Patent

"Pixel perfect real-time web application framework" (https://patents.google.com/patent/US10409565B2/en)