Wenn ein Delphi-Team eine Geschäftsanwendung im Browser zugänglich machen möchte, stellt sich immer dieselbe Frage: Welches Web-Framework? Im Jahr 2026 gibt es fünf ernstzunehmende Delphi-native Optionen: IntraWeb, UniGUI, TMS WEB Core, TMS XData und sgcHTML. Jede löst das Problem auf andere Weise und glänzt in einer anderen Situation. Dieser Beitrag stellt jede Option ehrlich vor und erklärt, wo sgcHTML einen klaren Vorteil bietet.
IntraWeb — das ursprüngliche Delphi-Web-Framework
IntraWeb ist seit 2001 auf dem Markt. Das Modell ist einfach: VCL-Formulare werden serverseitig als HTML gerendert. Wer Delphi-Formulare kennt, kann damit eine IntraWeb-Seite erstellen. Der Zustand liegt auf dem Server; der Browser ist im Wesentlichen eine dünne Anzeigeschicht. Für interne Tools mit einer überschaubaren Anzahl gleichzeitiger Nutzer funktioniert dieser Ansatz nach wie vor.
Schwierigkeiten bereitet IntraWeb beim Theming und bei modernen Layouts. Das generierte HTML und CSS stammt aus einer Zeit vor Bootstrap und Flexbox. Eine responsive, mobilfreundliche Seite erfordert erhebliche CSS-Anpassungsarbeit. Das generierte Markup ist umständlich und lässt sich nur schwer in moderne Design-Systeme integrieren. IntraWeb ist zudem vollständig zustandsbehaftet: Jeder Nutzer hält während seines Besuchs ein serverseitiges Session-Objekt, was die horizontale Skalierbarkeit einschränkt.
UniGUI — ausgereift, vollständig und zustandsbehaftet
UniGUI ist das funktionsreichste Delphi-Web-Framework. Die Komponentenpalette ist enorm (Grids, Charts, Bäume, Karten, Datei-Upload, Rich-Text-Editor, Touch-Unterstützung) und das Theming-System ist ausgereift. Im Hintergrund kommt Sencha ExtJS zum Einsatz, eine leistungsstarke JavaScript-Komponentenbibliothek, die polierte Oberflächen nahe an nativer Desktop-Qualität erzeugt.
Der Kompromiss liegt in der Komplexität und der zustandsbehafteten Architektur. UniGUI-Sessions halten den vollständigen Komponentenzustand auf dem Server. Eine stark frequentierte Anwendung mit vielen gleichzeitigen Nutzern benötigt erheblichen Arbeitsspeicher und sorgfältiges Session-Management. Die ExtJS-Schicht ist zwar leistungsstark, aber kein Bootstrap, was bedeutet, dass jede neue Arbeitskraft, die Bootstrap kennt, ein paralleles Vokabular erlernen muss. Lizenzen werden pro Entwickler und pro Server berechnet, und der Server-Anteil der Lizenzkosten ist bei Cloud-Deployments relevant.
TMS WEB Core — clientseitiges Pascal, zu JavaScript kompiliert
TMS WEB Core verfolgt den gegenteiligen Ansatz: Es kompiliert die Object-Pascal-Anwendung mit einem WebAssembly-fähigen Compiler zu JavaScript. Das Ergebnis läuft vollständig im Browser; Delphi-Formularereignisse werden als JavaScript-Ereignisse ausgeführt. Die Oberfläche verwendet Bootstrap oder Material Design, und TMS WEB Core liefert eine wachsende Anzahl visueller Komponenten mit.
Das ist eine wirklich clevere Technologie, die für bestimmte Anwendungsfälle gut funktioniert, insbesondere für in sich geschlossene Browser-Anwendungen, die Offline-Fähigkeit oder sehr geringe Serverlast benötigen. Die Einschränkung liegt im Deployment-Modell. Das kompilierte Ergebnis besteht aus statischen JavaScript-Dateien und Assets, die erstellt, versioniert und ausgeliefert werden müssen. Das Hinzufügen einer Funktion erfordert einen Neubau und eine erneute Bereitstellung des Client-Bundles. Geschäftslogik, die zuvor sicher auf dem Server lag, wird nun im Browser ausgeführt, was bei sensiblen Berechnungen Sicherheitsfragen aufwirft. Die Integration mit einer vorhandenen serverseitigen Delphi-Komponente (einem TsgcWebSocketClient, einer FireDAC-Verbindung) erfordert Architekturarbeit, da das kompilierte JavaScript native Delphi-Units nicht direkt aufrufen kann.
TMS XData — REST-Back-End, kein Web-UI-Framework
TMS XData verdient Erwähnung, weil es häufig mit Web-UI-Frameworks verglichen wird, aber keines ist. XData generiert aus Delphi-Service-Klassen eine REST-API unter Verwendung von OpenAPI 3.0 und JSON. Das Front-End muss separat erstellt werden — in TMS WEB Core, React, Angular oder einer anderen Technologie, die HTTP beherrscht. XData ist ausgezeichnet in dem, was es tut. Es beseitigt jedoch nicht die Notwendigkeit einer separaten Front-End-Technologie, wenn eine Browser-Oberfläche gewünscht wird.
sgcHTML — serverseitige Komponenten auf Basis von Standard Bootstrap 5
sgcHTML nimmt eine andere Position als all die oben genannten Frameworks ein. Es ist eine serverseitige Komponentenbibliothek, deren Ausgabe Standard Bootstrap 5 HTML ist. Die Komponenten selbst sind Delphi-Klassen (TsgcHTMLComponent_Chart, TsgcHTMLComponent_DataTable usw.); sie werden über Eigenschaften konfiguriert, und das Ergebnis ist ein HTML-String. Dieser String wird in die HTTP-Antwort eingefügt. Der Browser rendert ihn mithilfe von Bootstrap. htmx (eine 14-KB-Bibliothek, kein Build-Schritt) übernimmt die Interaktivität: Klicks und Formular-Übermittlungen gehen an den Delphi-Handler zurück, der mit einem HTML-Fragment antwortet, und htmx tauscht den entsprechenden Seitenabschnitt aus.
Die Architektur ist zustandslos. Jede Anfrage erstellt, was sie benötigt, gibt das HTML zurück und ist abgeschlossen. Es gibt keinen pro-Session-Komponentenbaum, der gepflegt werden muss. Horizontales Skalieren ist trivial: Ein Load Balancer vor zwei Instanzen derselben .exe genügt.
Direkter Vergleich
| Merkmal | IntraWeb | UniGUI | TMS WEB Core | sgcHTML |
|---|---|---|---|---|
| Architektur | Zustandsbehaftete serverseitige Formulare | Zustandsbehaftete ExtJS-Session | Clientseitiges Pascal→JS | Zustandsloses serverseitiges HTML |
| Ausgabe-Markup | Proprietäres HTML + CSS | ExtJS JSON/HTML | Standard Bootstrap | Standard Bootstrap 5 |
| Interaktivität | Vollständiger Seitenaufruf oder AJAX | ExtJS AJAX | Läuft im Browser | htmx-Fragmente + WebSocket |
| Echtzeit-WebSocket-Push | Nein (Add-on) | Eingeschränkt | Über JS-WebSocket-API | Ja — erstklassig (sgcWebSockets) |
| Skalierbarkeit | Durch Session-Zustand begrenzt | Durch Session-Zustand begrenzt | Zustandslos (statische Dateien) | Zustandslos, horizontal |
| Selbst geschriebenes JavaScript | Keines | Minimal | Keines (aus Pascal kompiliert) | Keines |
| npm / Node.js erforderlich | Nein | Nein | Ja (Build-Schritt) | Nein |
| Single-Binary-Deployment | Ja | Ja | Nein (JS-Bundle + Assets) | Ja |
| DataSet-Bindung | Ja | Ja | Über JS-Bridge | Ja (direkt TDataSet/TDataSource) |
| Anzahl der UI-Komponenten | ~40 | 80+ | 50+ | 60+ |
| Mobile/Responsive | Teilweise | Ja (ExtJS Touch) | Ja (Bootstrap) | Ja (Bootstrap 5) |
| .NET-Edition | Nein | Nein | Nein | Ja (.NET 6+) |
Wo sgcHTML einen klaren Vorteil hat
Echtzeit-Dashboards. Da sgcHTML auf sgcWebSockets aufbaut, verarbeitet derselbe Server, der HTML-Seiten ausliefert, auch WebSocket-Verbindungen. Eine Aktienkurs-Aktualisierung, ein neuer Sensorwert oder ein abgeschlossener Produktionsauftrag kann mit einem einzigen Broadcast-Aufruf ein HTML-Fragment an alle verbundenen Browser-Tabs senden. Kein Polling, keine separate Push-Infrastruktur, keine zusätzliche Lizenz. IntraWeb und UniGUI bieten beide nur eingeschränkte WebSocket-Unterstützung, die zusätzliche Integrationsarbeit erfordert. TMS WEB Core kann die native WebSocket-API des Browsers nutzen, erfordert aber clientseitige JavaScript-Logik zur Verarbeitung eingehender Nachrichten.
Standard-Markup ohne Anpassungsaufwand. Da die Ausgabe Bootstrap 5 HTML ist, kann jeder Designer, der Bootstrap kennt, es gestalten. Themes sind Standard-Bootstrap-Themes — Hunderte kostenloser und kostenpflichtiger Themes existieren und lassen sich sofort anwenden. IntraWeb und UniGUI erzeugen Framework-spezifisches Markup, das das Erlernen eines separaten Styling-Systems erfordert.
Zustandslos und horizontal skalierbar. Jede sgcHTML-Anfrage ist unabhängig. Es gibt kein serverseitiges Session-Objekt pro Nutzer. Zwei per Load Balancer verteilte Instanzen derselben ausführbaren Datei bedienen Anfragen austauschbar. IntraWeb und UniGUI leiten Anfragen an die spezifische Serverinstanz weiter, die die Session hält, was Cloud-Deployments erschwert.
Deployment als einzelne ausführbare Datei. Bootstrap CSS, Chart.js und htmx sind als eingebettete Ressourcen im Delphi-Binary enthalten. sgcHTML zu deployen bedeutet, eine einzige .exe zu kopieren. TMS WEB Core erzeugt ein JavaScript-Bundle und eine Reihe von Assets, die versioniert und separat ausgeliefert werden müssen.
Keine Build-Kette. Es gibt kein npm, kein webpack, kein Babel und kein Node.js. Das Delphi-Projekt wird kompiliert und ausgeliefert. Dies ist besonders wichtig in regulierten Umgebungen und On-Premises-Deployments, in denen die Installation einer Node.js-Toolchain eine IT-Freigabe erfordert.
Direkter Code-Vergleich: ein Daten-Grid
Um den Unterschied konkret zu machen, zeigt das folgende Beispiel, wie in sgcHTML ein durchsuchbares, paginiertes Daten-Grid aus einer FireDAC-Abfrage gerendert wird:
uses
sgcHTML_Component_DataTable;
var
oTable: TsgcHTMLComponent_DataTable;
begin
oTable := TsgcHTMLComponent_DataTable.Create(nil);
oTable.PageBuilder := oPage.PageBuilder;
oTable.Section := 'data';
oTable.Title := 'Customers';
oTable.ShowSearch := True;
oTable.ShowExport := True;
oTable.LoadFromDataSet(fdqCustomers, 25); // 25 rows per page
// Read oTable.HTML and include it in your response
end;
Das Ergebnis ist eine responsive, durchsuchbare, paginierte Bootstrap-Tabelle mit Sortierpfeilen, einem Suchfeld und einer Export-Schaltfläche. Der Browser rendert sie ohne zusätzliche Server-Roundtrips für die initiale Seite. Filterung und Paginierung nutzen htmx, um nur das Tabellen-Fragment und nicht die gesamte Seite auszutauschen.
Wann die Alternativen die bessere Wahl sind
sgcHTML ist nicht immer die richtige Wahl. Wer eine große bestehende IntraWeb- oder UniGUI-Anwendung mit Hunderten von Formularen und einem gut etablierten Theming-System besitzt, für den macht eine Migration wenig Sinn. UniGUI ist die bessere Wahl, wenn tiefgehende Grid-Funktionen benötigt werden (eingefrorene Spalten, Zell-Editoren, Zeilengruppierung, Pivot), die Excel entsprechen oder übertreffen, oder wenn die Eleganz von ExtJS für ein Power-User-Back-Office-Tool gewünscht wird. TMS WEB Core ist die richtige Wahl, wenn eine Anwendung benötigt wird, die offline im Browser ohne Server läuft, oder wenn eine Single-Page-Application als statische Dateien über ein CDN verteilt werden soll.
sgcHTML ist die stärkste Wahl, wenn:
- Eine neue Web-Oberfläche neben einem bestehenden Delphi-Back-End aufgebaut wird und kein separates JavaScript-Projekt verwaltet werden soll.
- Die Anwendung Live-Daten benötigt, die vom Server gepusht werden (Handelsoberflächen, Logistik-Dashboards, Monitoring, Chat).
- Eine responsive, mobilfreundliche Bootstrap 5-Oberfläche benötigt wird, die das Design-Team mit Standard-Bootstrap-Werkzeugen gestalten kann.
- Das Deployment eine einzige ausführbare Datei ohne externe Abhängigkeiten sein muss.
- Neben Delphi auch .NET (C#) angesteuert wird und dieselbe Komponenten-API auf beiden Plattformen gewünscht wird.
sgcHTML ausprobieren
Eine kostenlose Testversion mit allen 60+ Komponenten und ohne Funktionseinschränkungen steht unter esegece.com/products/sgchtml/download zur Verfügung. Der Download enthält vier fertige Demo-Anwendungen (ERP, Admin Console, Live Monitor und Customer Portal), die die Komponentenpalette in realistischen Szenarien demonstrieren.
Fragen oder ein Vergleich mit einem konkreten bestehenden Projekt? Nehmen Sie Kontakt auf. Die Antwort kommt von den Personen, die den Code geschrieben haben.
