Lorsqu'une équipe Delphi doit exposer une application métier dans un navigateur, la première question est toujours la même : quel framework web choisir ? En 2026, cinq options natives Delphi sont crédibles : IntraWeb, UniGUI, TMS WEB Core, TMS XData et sgcHTML. Chacune résout le problème différemment, et chacune brille dans une situation différente. Cet article passe en revue chacune d'elles honnêtement, puis explique où sgcHTML offre un avantage distinctif.
IntraWeb — le framework web Delphi originel
IntraWeb existe depuis 2001. Son modèle est simple : des formulaires VCL rendus côté serveur en HTML. Si vous connaissez les formulaires Delphi, vous pouvez créer une page IntraWeb. L'état réside sur le serveur ; le navigateur est essentiellement une couche d'affichage légère. Pour les outils internes avec un nombre modeste d'utilisateurs simultanés, cette approche fonctionne encore.
Là où IntraWeb peine, c'est dans la personnalisation des thèmes et les mises en page modernes. Il génère son propre HTML et CSS, qui datent d'avant Bootstrap et flexbox. Obtenir une page responsive adaptée aux mobiles nécessite un travail important de surcharge CSS. Le balisage généré est verbeux et difficile à intégrer avec les systèmes de design modernes. IntraWeb est également entièrement avec état : chaque utilisateur conserve un objet de session côté serveur pendant toute la durée de sa visite, ce qui limite la scalabilité horizontale.
UniGUI — mature, complet en fonctionnalités, avec état
UniGUI est le framework web Delphi le plus complet en fonctionnalités. Sa palette de composants est énorme (grilles, graphiques, arbres, cartes, upload de fichiers, éditeur de texte enrichi, support tactile) et son système de thèmes est mature. Sous le capot, il utilise Sencha ExtJS, une puissante bibliothèque de composants JavaScript qui produit des interfaces soignées proches de la qualité d'un bureau natif.
La contrepartie est la complexité et l'architecture avec état. Les sessions UniGUI maintiennent l'intégralité de l'état des composants sur le serveur. Une application chargée avec de nombreux utilisateurs simultanés nécessite une mémoire importante et une gestion minutieuse des sessions. La couche ExtJS, bien que puissante, n'est pas Bootstrap, ce qui signifie que chaque nouveau développeur qui connaît Bootstrap doit apprendre un vocabulaire parallèle. Les licences sont par développeur et par serveur, et la composante par serveur du coût de licence importe pour les déploiements cloud.
TMS WEB Core — Pascal côté client compilé en JavaScript
TMS WEB Core adopte l'approche inverse : il compile votre application Object Pascal en JavaScript à l'aide d'un compilateur compatible WebAssembly. Le résultat s'exécute entièrement dans le navigateur ; vos événements de formulaire Delphi se déclenchent comme des événements JavaScript. L'interface utilise Bootstrap ou Material Design, et TMS WEB Core est livré avec un ensemble croissant de composants visuels.
Il s'agit d'une technologie véritablement ingénieuse qui fonctionne bien pour certains cas d'usage, notamment les applications navigateur autonomes nécessitant une capacité hors ligne ou une charge serveur très faible. La limitation est le modèle de déploiement. La sortie compilée est un ensemble de fichiers JavaScript statiques et d'assets qui doivent être construits, versionnés et servis. Ajouter une fonctionnalité implique une reconstruction et un redéploiement du bundle client. La logique métier qui résidait auparavant en sécurité sur le serveur s'exécute maintenant dans le navigateur, ce qui soulève des questions de sécurité pour les calculs sensibles. L'intégration avec un composant Delphi côté serveur existant (un TsgcWebSocketClient, une connexion FireDAC) nécessite un travail architectural, car le JavaScript compilé ne peut pas appeler directement les unités Delphi natives.
TMS XData — backend REST, pas un framework d'interface web
TMS XData mérite d'être mentionné car il est souvent comparé aux frameworks d'interface web, mais il n'en est pas un. XData génère une API REST à partir de classes de services Delphi en utilisant OpenAPI 3.0 et JSON. Le frontend doit être construit séparément — en TMS WEB Core, React, Angular ou tout ce qui parle HTTP. XData excelle dans ce qu'il fait. Il ne supprime simplement pas le besoin d'une technologie frontend distincte lorsque vous souhaitez une interface navigateur.
sgcHTML — composants côté serveur sur Bootstrap 5 standard
sgcHTML occupe une position différente de tous les précédents. C'est une bibliothèque de composants côté serveur dont la sortie est du HTML Bootstrap 5 standard. Les composants eux-mêmes sont des classes Delphi (TsgcHTMLComponent_Chart, TsgcHTMLComponent_DataTable, etc.) ; vous les configurez via des propriétés et lisez une chaîne HTML. Cette chaîne est incluse dans votre réponse HTTP. Le navigateur la rend avec Bootstrap. htmx (une bibliothèque de 14 Ko, sans étape de construction) gère l'interactivité : les clics et les soumissions de formulaires reviennent vers votre gestionnaire Delphi, qui répond avec un fragment HTML, et htmx remplace la section concernée de la page.
L'architecture est sans état. Chaque requête construit ce dont elle a besoin, renvoie le HTML et se termine. Il n'y a pas d'arbre de composants par session à maintenir. La scalabilité horizontale est triviale : placez un équilibreur de charge devant deux instances du même .exe.
Comparaison côte à côte
| Fonctionnalité | IntraWeb | UniGUI | TMS WEB Core | sgcHTML |
|---|---|---|---|---|
| Architecture | Formulaires serveur avec état | Session ExtJS avec état | Pascal côté client→JS | HTML serveur sans état |
| Balisage de sortie | HTML + CSS propriétaires | JSON/HTML ExtJS | Bootstrap standard | Bootstrap 5 standard |
| Interactivité | Rechargement complet ou AJAX | AJAX ExtJS | S'exécute dans le navigateur | Fragments htmx + WebSocket |
| Push WebSocket temps réel | Non (add-on) | Limité | Via l'API WebSocket JS | Oui — natif (sgcWebSockets) |
| Scalabilité | Limitée par l'état de session | Limitée par l'état de session | Sans état (fichiers statiques) | Sans état, horizontal |
| JavaScript à écrire | Aucun | Minimal | Aucun (compilé depuis Pascal) | Aucun |
| npm / Node.js requis | Non | Non | Oui (étape de construction) | Non |
| Déploiement en binaire unique | Oui | Oui | Non (bundle JS + assets) | Oui |
| Liaison DataSet | Oui | Oui | Via pont JS | Oui (TDataSet/TDataSource direct) |
| Nombre de composants UI | ~40 | 80+ | 50+ | 60+ |
| Mobile/responsive | Partiel | Oui (ExtJS Touch) | Oui (Bootstrap) | Oui (Bootstrap 5) |
| Édition .NET | Non | Non | Non | Oui (.NET 6+) |
Où sgcHTML présente un avantage clair
Tableaux de bord temps réel. Parce que sgcHTML est construit sur sgcWebSockets, le même serveur qui sert les pages HTML gère également les connexions WebSocket. Une mise à jour du cours d'une action, une nouvelle lecture de capteur ou une production terminée peut pousser un fragment HTML vers chaque onglet de navigateur connecté avec un seul appel Broadcast. Pas d'interrogation, pas d'infrastructure push séparée, pas de licence supplémentaire. IntraWeb et UniGUI ont tous deux un support WebSocket limité qui nécessite un travail d'intégration supplémentaire. TMS WEB Core peut utiliser l'API WebSocket native du navigateur mais requiert une logique JavaScript côté client pour traiter les messages entrants.
Balisage standard sans surcharge de personnalisation. Parce que la sortie est du HTML Bootstrap 5, tout designer qui connaît Bootstrap peut le styliser. Les thèmes sont des thèmes Bootstrap standard — des centaines de thèmes gratuits et payants existent et s'appliquent instantanément. IntraWeb et UniGUI génèrent un balisage spécifique au framework qui nécessite d'apprendre un système de style distinct.
Sans état et horizontalement scalable. Chaque requête sgcHTML est indépendante. Il n'y a pas d'objet de session par utilisateur sur le serveur. Deux instances du même exécutable avec équilibrage de charge traitent les requêtes de manière interchangeable. IntraWeb et UniGUI dirigent les requêtes vers l'instance de serveur spécifique qui détient la session, ce qui complique les déploiements cloud.
Déploiement en exécutable unique. Le CSS Bootstrap, Chart.js et htmx sont des ressources intégrées dans le binaire Delphi. Déployer sgcHTML signifie copier un seul .exe. TMS WEB Core produit un bundle JavaScript et un ensemble d'assets qui doivent être versionnés et servis séparément.
Pas de chaîne de construction. Il n'y a pas de npm, pas de webpack, pas de Babel et pas de Node.js. Vous compilez votre projet Delphi et livrez. Cela importe énormément dans les environnements réglementés et les déploiements sur site où l'installation d'une chaîne d'outils Node.js nécessite l'approbation informatique.
Une comparaison directe de code : une grille de données
Pour rendre la différence concrète, voici comment afficher une grille de données avec recherche et pagination à partir d'une requête FireDAC, avec 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;
Le résultat est un tableau Bootstrap responsive, avec recherche et pagination, indicateurs de tri, une zone de recherche et un bouton d'export. Le navigateur le rend sans allers-retours supplémentaires vers le serveur pour la page initiale. Le filtrage et la pagination utilisent htmx pour remplacer uniquement le fragment du tableau, pas la page complète.
Quand choisir les alternatives
sgcHTML n'est pas toujours le bon choix. Si vous avez une grande application IntraWeb ou UniGUI existante avec des centaines de formulaires et un système de thèmes bien établi, la migrer n'a guère de sens. UniGUI est le meilleur choix lorsque vous avez besoin de capacités de grille avancées (colonnes figées, éditeurs de cellules, regroupement de lignes, pivot) qui égalent ou dépassent Excel, ou lorsque vous voulez la finition d'ExtJS pour un outil back-office destiné à des utilisateurs avancés. TMS WEB Core est le bon choix lorsque vous avez besoin d'une application qui fonctionne hors ligne dans le navigateur sans aucun serveur, ou lorsque vous souhaitez distribuer une application monopagé comme fichiers statiques via un CDN.
sgcHTML est le choix le plus pertinent lorsque :
- Vous construisez une nouvelle interface web aux côtés d'un backend Delphi existant et ne souhaitez pas gérer un projet JavaScript séparé.
- L'application a besoin de données en direct poussées depuis le serveur (écrans de trading, tableaux de bord logistiques, surveillance, chat).
- Vous avez besoin d'une interface Bootstrap 5 responsive et adaptée aux mobiles que les designers de votre équipe peuvent thématiser avec les outils Bootstrap standard.
- Le déploiement doit être un exécutable unique sans dépendances externes.
- Vous ciblez .NET (C#) aux côtés de Delphi et souhaitez la même API de composants sur les deux plateformes.
Essayer sgcHTML
Un essai gratuit avec plus de 60 composants et sans restrictions de fonctionnalités est disponible sur esegece.com/products/sgchtml/download. Le téléchargement inclut quatre applications de démonstration fonctionnelles (ERP, Admin Console, Live Monitor et Customer Portal) qui illustrent la palette de composants dans des scénarios réalistes.
Des questions ou une comparaison avec un projet existant spécifique ? Contactez-nous. Vous obtiendrez une réponse des personnes qui ont écrit le code.
