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:
- U een nieuwe webinterface bouwt naast een bestaande Delphi-backend en geen apart JavaScript-project wilt beheren.
- De applicatie live data nodig heeft die van de server wordt gepusht (handelsschermen, logistieke dashboards, monitoring, chat).
- U een responsieve, mobielvriendelijke Bootstrap 5-interface nodig heeft die de ontwerpers van uw team kunnen thematiseren met standaard Bootstrap-tooling.
- De implementatie een enkel uitvoerbaar bestand moet zijn zonder externe afhankelijkheden.
- U .NET (C#) naast Delphi target en dezelfde component-API op beide platforms wilt.
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.
