sgcHTML vs UniGUI, TMS WEB Core e IntraWeb: Eligiendo tu framework web para Delphi

· Componentes

Cuando un equipo de Delphi necesita exponer una aplicación de negocio en un navegador, la primera pregunta siempre es la misma: ¿qué framework web usar? En 2026 existen cinco opciones nativas para Delphi con credibilidad suficiente: IntraWeb, UniGUI, TMS WEB Core, TMS XData y sgcHTML. Cada una resuelve el problema de manera diferente y destaca en una situación distinta. Este artículo repasa cada una con honestidad y luego explica dónde sgcHTML ofrece una ventaja clara.

IntraWeb — el framework web original para Delphi

IntraWeb existe desde 2001. Su modelo es sencillo: formularios VCL renderizados en el servidor como HTML. Si conoces los formularios de Delphi, puedes construir una página con IntraWeb. El estado reside en el servidor; el navegador es esencialmente una capa de visualización ligera. Para herramientas internas con un número moderado de usuarios concurrentes, este enfoque sigue siendo válido.

Donde IntraWeb tiene dificultades es en la personalización visual y el diseño moderno. Genera su propio HTML y CSS, anteriores a Bootstrap y flexbox. Conseguir una página responsiva y adaptada a móviles requiere un trabajo considerable de sobreescritura de CSS. El marcado generado es verboso y difícil de integrar con sistemas de diseño modernos. IntraWeb también es completamente con estado: cada usuario mantiene un objeto de sesión en el servidor durante toda su visita, lo que limita la escalabilidad horizontal.

UniGUI — maduro, completo y con estado

UniGUI es el framework web más completo para Delphi. Su paleta de componentes es enorme (rejillas, gráficos, árboles, mapas, carga de archivos, editor de texto enriquecido, soporte táctil) y su sistema de temas es maduro. Internamente utiliza Sencha ExtJS, una potente biblioteca de componentes JavaScript que produce interfaces refinadas cercanas a la calidad de las aplicaciones de escritorio nativas.

La contrapartida es la complejidad y la arquitectura con estado. Las sesiones de UniGUI mantienen el estado completo de los componentes en el servidor. Una aplicación con muchos usuarios concurrentes necesita memoria considerable y una gestión cuidadosa de las sesiones. La capa de ExtJS, aunque potente, no es Bootstrap, lo que significa que cada nuevo desarrollador que conoce Bootstrap debe aprender un vocabulario paralelo. Las licencias son por desarrollador y por servidor, y el componente por servidor del coste de la licencia importa en despliegues en la nube.

TMS WEB Core — Pascal del lado del cliente compilado a JavaScript

TMS WEB Core adopta el enfoque contrario: compila tu aplicación Object Pascal a JavaScript usando un compilador compatible con WebAssembly. El resultado se ejecuta completamente en el navegador; los eventos de tu formulario Delphi se disparan como eventos JavaScript. La interfaz utiliza Bootstrap o Material Design, y TMS WEB Core incluye un conjunto creciente de componentes visuales.

Es una tecnología genuinamente ingeniosa que funciona bien para ciertos casos de uso, especialmente aplicaciones de navegador autocontenidas que necesitan capacidad sin conexión o una carga de servidor muy baja. La limitación es el modelo de despliegue. El resultado compilado es un conjunto de archivos JavaScript estáticos y recursos que deben construirse, versionarse y servirse. Añadir una funcionalidad implica recompilar y redesplegar el paquete del cliente. La lógica de negocio que antes residía de forma segura en el servidor ahora se ejecuta en el navegador, lo que plantea preguntas de seguridad para cálculos sensibles. Integrar un componente Delphi del lado del servidor existente (un TsgcWebSocketClient, una conexión FireDAC) requiere trabajo arquitectónico, porque el JavaScript compilado no puede llamar directamente a unidades nativas de Delphi.

TMS XData — un back end REST, no un framework de interfaz web

TMS XData merece mencionarse porque a menudo se compara con frameworks de interfaz web, pero no lo es. XData genera una API REST a partir de clases de servicio Delphi usando OpenAPI 3.0 y JSON. El front end debe construirse por separado — en TMS WEB Core, React, Angular o cualquier tecnología que hable HTTP. XData es excelente en lo que hace. Simplemente no elimina la necesidad de una tecnología de front end separada cuando se quiere una interfaz de navegador.

sgcHTML — componentes del lado del servidor sobre Bootstrap 5 estándar

sgcHTML adopta una posición diferente a todas las anteriores. Es una biblioteca de componentes del lado del servidor cuya salida es HTML estándar de Bootstrap 5. Los componentes en sí son clases Delphi (TsgcHTMLComponent_Chart, TsgcHTMLComponent_DataTable, etc.); se configuran mediante propiedades y se lee una cadena HTML. Esa cadena va en tu respuesta HTTP. El navegador la renderiza usando Bootstrap. htmx (una biblioteca de 14 KB, sin paso de construcción) gestiona la interactividad: los clics y los envíos de formularios vuelven a tu controlador Delphi, que responde con un fragmento HTML, y htmx reemplaza la sección relevante de la página.

La arquitectura es sin estado. Cada solicitud construye lo que necesita, devuelve el HTML y termina. No hay árbol de componentes por sesión que mantener. El escalado horizontal es trivial: pon un balanceador de carga delante de dos instancias del mismo .exe.

Comparación lado a lado

Característica IntraWeb UniGUI TMS WEB Core sgcHTML
Arquitectura Formularios de servidor con estado Sesión ExtJS con estado Pascal del lado del cliente→JS HTML de servidor sin estado
Marcado de salida HTML + CSS propietario JSON/HTML de ExtJS Bootstrap estándar Bootstrap 5 estándar
Interactividad Recarga de página completa o AJAX AJAX de ExtJS Se ejecuta en el navegador Fragmentos htmx + WebSocket
Push WebSocket en tiempo real No (complemento) Limitado Mediante API JS WebSocket Sí — de primer nivel (sgcWebSockets)
Escalabilidad Limitada por el estado de sesión Limitada por el estado de sesión Sin estado (archivos estáticos) Sin estado, horizontal
JavaScript que escribes Ninguno Mínimo Ninguno (compilado desde Pascal) Ninguno
npm / Node.js necesario No No Sí (paso de construcción) No
Despliegue en un solo binario No (paquete JS + recursos)
Vinculación con DataSet Mediante puente JS Sí (TDataSet/TDataSource directo)
Número de componentes de interfaz ~40 80+ 50+ 60+
Móvil/responsivo Parcial Sí (ExtJS Touch) Sí (Bootstrap) Sí (Bootstrap 5)
Edición .NET No No No Sí (.NET 6+)

Dónde sgcHTML tiene una ventaja clara

Paneles de control en tiempo real. Dado que sgcHTML está construido sobre sgcWebSockets, el mismo servidor que sirve páginas HTML también gestiona conexiones WebSocket. Una actualización de precio de acción, una nueva lectura de sensor o una ejecución de producción completada puede enviar un fragmento HTML a cada pestaña del navegador conectada en una sola llamada a Broadcast. Sin sondeo, sin infraestructura de push separada, sin licencia adicional. Tanto IntraWeb como UniGUI tienen soporte WebSocket limitado que requiere trabajo de integración adicional. TMS WEB Core puede usar la API WebSocket nativa del navegador, pero requiere lógica JavaScript del lado del cliente para gestionar los mensajes entrantes.

Marcado estándar sin sobrecarga de personalización. Como la salida es HTML de Bootstrap 5, cualquier diseñador que conozca Bootstrap puede darle estilo. Los temas son temas Bootstrap estándar: existen cientos de temas gratuitos y de pago que se aplican al instante. IntraWeb y UniGUI generan marcado específico del framework que requiere aprender un sistema de estilos separado.

Sin estado y escalable horizontalmente. Cada solicitud de sgcHTML es independiente. No hay objeto de sesión por usuario en el servidor. Dos instancias del mismo ejecutable detrás de un balanceador de carga atienden solicitudes de forma intercambiable. IntraWeb y UniGUI enrutan las solicitudes de vuelta a la instancia específica del servidor que mantiene la sesión, lo que complica los despliegues en la nube.

Despliegue en un solo ejecutable. El CSS de Bootstrap, Chart.js y htmx son recursos embebidos dentro del binario Delphi. Desplegar sgcHTML significa copiar un solo .exe. TMS WEB Core produce un paquete JavaScript y un conjunto de recursos que deben versionarse y servirse por separado.

Sin cadena de construcción. No hay npm, ni webpack, ni Babel, ni Node.js. Compilas tu proyecto Delphi y distribuyes. Esto importa enormemente en entornos regulados y despliegues en instalaciones propias donde instalar una cadena de herramientas Node.js requiere la aprobación del departamento de TI.

Una comparación directa de código: una rejilla de datos

Para hacer concreta la diferencia, así es como se renderiza una rejilla de datos con búsqueda y paginación a partir de una consulta FireDAC, en 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;

El resultado es una tabla Bootstrap responsiva, con búsqueda y paginación, con indicadores de ordenación, un cuadro de búsqueda y un botón de exportación. El navegador la renderiza sin viajes adicionales al servidor para la carga inicial de la página. El filtrado y la paginación usan htmx para reemplazar únicamente el fragmento de la tabla, no la página completa.

Cuándo elegir las alternativas

sgcHTML no siempre es la elección correcta. Si tienes una aplicación IntraWeb o UniGUI grande con cientos de formularios y un sistema de temas bien establecido, migrarla tiene poco sentido. UniGUI es la mejor opción cuando necesitas capacidades de rejilla avanzadas (columnas fijas, editores de celda, agrupación de filas, tabla dinámica) que igualen o superen a Excel, o cuando quieres el refinamiento de ExtJS para una herramienta de back-office para usuarios avanzados. TMS WEB Core es la elección adecuada cuando necesitas una aplicación que funcione sin conexión en el navegador sin ningún servidor, o cuando quieres distribuir una aplicación de página única como archivos estáticos a través de una CDN.

sgcHTML es la opción más sólida cuando:

Probando sgcHTML

Una versión de prueba gratuita con todos los 60+ componentes y sin restricciones de funcionalidades está disponible en esegece.com/products/sgchtml/download. La descarga incluye cuatro aplicaciones de demostración funcionales (ERP, Admin Console, Live Monitor y Customer Portal) que muestran la paleta de componentes en escenarios realistas.

¿Preguntas o una comparación con un proyecto existente específico? Contáctanos. Recibirás una respuesta de las personas que escribieron el código.