sgcHTML vs UniGUI, TMS WEB Core en IntraWeb: Kies uw Delphi-webframework

· Componenten

Wanneer een Delphi-team een zakelijke applicatie in een browser wil ontsluiten, is de eerste vraag altijd dezelfde: welk webframework? In 2026 zijn er vijf geloofwaardige Delphi-native opties: IntraWeb, UniGUI, TMS WEB Core, TMS XData en sgcHTML. Elk lost het probleem anders op en elk blinkt uit in een andere situatie. Dit bericht bespreekt elk van hen eerlijk en legt vervolgens uit waar sgcHTML een duidelijk voordeel biedt.

IntraWeb — het originele Delphi-webframework

IntraWeb bestaat al sinds 2001. Het model is eenvoudig: VCL-formulieren worden server-side als HTML weergegeven. Als u Delphi-formulieren kent, kunt u een IntraWeb-pagina bouwen. De toestand bevindt zich op de server; de browser is in wezen een dunne weergavelaag. Voor interne tools met een bescheiden aantal gelijktijdige gebruikers werkt deze aanpak nog steeds.

Waar IntraWeb moeite mee heeft, is thematisering en moderne lay-out. Het genereert zijn eigen HTML en CSS, die dateren van vóór Bootstrap en flexbox. Een responsieve, mobielvriendelijke pagina vereist aanzienlijk CSS-overschrijvingswerk. De gegenereerde opmaak is uitgebreid en moeilijk te integreren met moderne ontwerpsystemen. IntraWeb is ook volledig stateful: elke gebruiker houdt voor de duur van zijn bezoek een server-side sessieobject vast, wat de horizontale schaalbaarheid beperkt.

UniGUI — volwassen, veelzijdig en stateful

UniGUI is het meest volledige Delphi-webframework. Het componentenpalet is enorm (rasters, grafieken, bomen, kaarten, bestand uploaden, rich-text editor, aanraakondersteuning) en het thematiseringssysteem is volwassen. Onder de motorkap gebruikt het Sencha ExtJS, een krachtige JavaScript-componentenbibliotheek die gepolijste interfaces produceert die dicht bij de kwaliteit van native desktoptoepassingen komen.

De afweging is complexiteit en de stateful-architectuur. UniGUI-sessies bewaren de volledige componenttoestand op de server. Een drukke applicatie met veel gelijktijdige gebruikers heeft aanzienlijk geheugen en zorgvuldig sessiebeheer nodig. De ExtJS-laag, hoewel krachtig, is niet Bootstrap, wat betekent dat elke nieuwe medewerker die Bootstrap kent een parallel vocabulaire moet leren. Licenties zijn per ontwikkelaar en per server, en het servercomponent van de licentiekosten telt bij cloudimplementaties.

TMS WEB Core — client-side Pascal gecompileerd naar JavaScript

TMS WEB Core neemt de tegenovergestelde aanpak: het compileert uw Object Pascal-applicatie naar JavaScript met een WebAssembly-geschikte compiler. Het resultaat draait volledig in de browser; uw Delphi-formuliergebeurtenissen worden geactiveerd als JavaScript-gebeurtenissen. De gebruikersinterface gebruikt Bootstrap of Material Design, en TMS WEB Core wordt geleverd met een groeiende reeks visuele componenten.

Dit is oprecht slimme technologie en werkt goed voor bepaalde gebruiksscenario’s, met name zelfstandige browsertoepassingen die offline-mogelijkheden of een zeer lage serverbelasting vereisen. De beperking is het implementatiemodel. De gecompileerde uitvoer is een reeks statische JavaScript-bestanden en assets die moeten worden gebouwd, geversioneerd en geserveerd. Het toevoegen van een functie vereist een herbouw en herimplementatie van de clientbundel. Bedrijfslogica die eerder veilig op de server stond, draait nu in de browser, wat beveiligingsvragen oproept voor gevoelige berekeningen. Integreren met een bestaand Delphi server-side component (een TsgcWebSocketClient, een FireDAC-verbinding) vereist architectuurwerk, omdat het gecompileerde JavaScript geen native Delphi-units direct kan aanroepen.

TMS XData — REST-backend, geen webframework voor de gebruikersinterface

TMS XData is het vermelden waard omdat het vaak wordt vergeleken met webframeworks voor de gebruikersinterface, maar dat is het niet. XData genereert een REST API van Delphi-serviceklassen met OpenAPI 3.0 en JSON. De front-end moet apart worden gebouwd — in TMS WEB Core, React, Angular of iets anders dat HTTP spreekt. XData is uitstekend in wat het doet. Het verwijdert alleen niet de noodzaak voor een afzonderlijke front-endtechnologie wanneer u een browserinterface wilt.

sgcHTML — server-side componenten op standaard Bootstrap 5

sgcHTML neemt een andere positie in dan alle bovenstaande. Het is een server-side componentenbibliotheek waarvan de uitvoer standaard Bootstrap 5 HTML is. De componenten zelf zijn Delphi-klassen (TsgcHTMLComponent_Chart, TsgcHTMLComponent_DataTable, enz.); u configureert ze via eigenschappen en leest een HTML-string. Die string gaat in uw HTTP-respons. De browser geeft het weer met Bootstrap. htmx (een bibliotheek van 14 KB, geen bouwstap) verwerkt interactiviteit: klikken en formulierverzendingen gaan terug naar uw Delphi-handler, die reageert met een HTML-fragment, en htmx vervangt het relevante gedeelte van de pagina.

De architectuur is stateless. Elk verzoek bouwt wat het nodig heeft, retourneert de HTML en is klaar. Er is geen sessiecomponentstructuur per gebruiker om te onderhouden. Horizontaal schalen is eenvoudig: zet een load balancer voor twee instanties van hetzelfde .exe-bestand.

Vergelijking naast elkaar

Functie IntraWeb UniGUI TMS WEB Core sgcHTML
Architectuur Stateful server-side formulieren Stateful ExtJS-sessie Client-side Pascal→JS Stateless server-side HTML
Uitvoer-opmaak Eigen HTML + CSS ExtJS JSON/HTML Standaard Bootstrap Standaard Bootstrap 5
Interactiviteit Volledige paginaherlaad of AJAX ExtJS AJAX Draait in browser htmx-fragmenten + WebSocket
Realtime WebSocket-push Nee (add-on) Beperkt Via JS WebSocket API Ja — eersteklas (sgcWebSockets)
Schaalbaarheid Beperkt door sessietoestand Beperkt door sessietoestand Stateless (statische bestanden) Stateless, horizontaal
JavaScript die u schrijft Geen Minimaal Geen (gecompileerd vanuit Pascal) Geen
npm / Node.js vereist Nee Nee Ja (bouwstap) Nee
Implementatie als enkel binair bestand Ja Ja Nee (JS-bundel + assets) Ja
DataSet-koppeling Ja Ja Via JS-brug Ja (direct TDataSet/TDataSource)
Aantal UI-componenten ~40 80+ 50+ 60+
Mobiel/responsief Gedeeltelijk Ja (ExtJS Touch) Ja (Bootstrap) Ja (Bootstrap 5)
.NET-editie Nee Nee Nee Ja (.NET 6+)

Waar sgcHTML een duidelijk voordeel heeft

Realtime-dashboards. Omdat sgcHTML is gebouwd op sgcWebSockets, verwerkt dezelfde server die HTML-pagina’s serveert ook WebSocket-verbindingen. Een aandelenkoersupdate, een nieuwe sensorwaarde of een voltooide productierun kan een HTML-fragment naar elk verbonden browsertabblad pushen in één enkele Broadcast-aanroep. Geen polling, geen aparte push-infrastructuur, geen extra licentie. IntraWeb en UniGUI hebben beide beperkte WebSocket-ondersteuning die extra integratiewerk vereist. TMS WEB Core kan de native WebSocket API van de browser gebruiken, maar vereist client-side JavaScript-logica om inkomende berichten te verwerken.

Standaard opmaak zonder aanpassingsoverhead. Omdat de uitvoer Bootstrap 5 HTML is, kan elke ontwerper die Bootstrap kent, het stylen. Thema’s zijn standaard Bootstrap-thema’s — er bestaan honderden gratis en betaalde thema’s die direct worden toegepast. IntraWeb en UniGUI genereren frameworkspecifieke opmaak waarvoor een apart stijlsysteem geleerd moet worden.

Stateless en horizontaal schaalbaar. Elk sgcHTML-verzoek is onafhankelijk. Er is geen sessieobject per gebruiker op de server. Twee load-balanced instanties van hetzelfde uitvoerbare bestand verwerken verzoeken uitwisselbaar. IntraWeb en UniGUI leiden verzoeken terug naar de specifieke serverinstantie die de sessie bevat, wat cloudimplementaties bemoeilijkt.

Implementatie als enkel uitvoerbaar bestand. Bootstrap CSS, Chart.js en htmx zijn ingebedde resources in het Delphi-binaire bestand. sgcHTML implementeren betekent één .exe kopiëren. TMS WEB Core produceert een JavaScript-bundel en een reeks assets die apart geversioneerd en geserveerd moeten worden.

Geen bouwketen. Er is geen npm, geen webpack, geen Babel en geen Node.js. U compileert uw Delphi-project en levert het. Dit maakt een enorm verschil in gereguleerde omgevingen en on-premises implementaties waar het installeren van een Node.js-toolchain IT-goedkeuring vereist.

Een directe codevergelijking: een gegevensraster

Om het verschil concreet te maken, ziet u hier hoe u een doorzoekbaar, gepagineerd gegevensraster van een FireDAC-query rendert in sgcHTML:

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;

Het resultaat is een responsieve, doorzoekbare, gepagineerde Bootstrap-tabel met sorterindicatoren, een zoekvak en een exportknop. De browser geeft het weer zonder extra serverrondritten voor de initiële pagina. Filteren en pagineren gebruiken htmx om alleen het tabelfragment te vervangen, niet de volledige pagina.

Wanneer u voor de alternatieven kiest

sgcHTML is niet altijd de juiste keuze. Als u een grote bestaande IntraWeb- of UniGUI-applicatie heeft met honderden formulieren en een gevestigd thematiseringssysteem, heeft migratie weinig zin. UniGUI is de betere keuze wanneer u diepgaande rastermogelijkheden nodig heeft (bevroren kolommen, celeditors, rijgroepering, pivot) die Excel evenaren of overtreffen, of wanneer u de verfijning van ExtJS wilt voor een back-officetool voor gevorderde gebruikers. TMS WEB Core is de juiste keuze wanneer u een applicatie nodig heeft die offline in de browser draait zonder server, of wanneer u een single-page-applicatie als statische bestanden via een CDN wilt distribueren.

sgcHTML is de sterkste keuze wanneer:

sgcHTML uitproberen

Een gratis proefversie met alle 60+ componenten en zonder functiebeperkingen is beschikbaar op esegece.com/products/sgchtml/download. De download bevat vier werkende demotoepassingen (ERP, Admin Console, Live Monitor en Customer Portal) die het componentenpalet in realistische scenario’s demonstreren.

Vragen of een vergelijking met een specifiek bestaand project? Neem contact op. U krijgt een antwoord van de mensen die de code hebben geschreven.