从 uniGUI 迁移到 sgcHTML — 面向 Delphi 的 Web UI 组件 | eSeGeCe

从 uniGUI 迁移到 sgcHTML

FMSoft 的 uniGUI 是一个商业 Delphi Web 框架,拥有庞大的可视化组件面板和接近原生 VCL 开发的设计时体验,许多团队用它交付了正式的应用。团队通常在以下情况开始关注 sgcHTML:希望获得基于纯 Bootstrap 5 标记而非捆绑 JavaScript 应用框架的更轻量页面;当服务器 RAM 中的每会话组件状态成为容量规划议题时;或者希望从同一组件集获得 WebSocket 实时功能和 .NET 选项。sgcHTML 让您继续使用 Object Pascal 和 RAD Studio,改变的只是页面的产生方式。

架构上有哪些变化

两个框架以不同的方式解决浏览器 UI 问题。这里先说明客观差异,再说明 sgcHTML 模型为您带来什么。

uniGUI 中,应用在 RAD Studio 表单设计器中使用数据感知控件构建,并通过捆绑的 Sencha Ext JS 层在浏览器中渲染。会话是有状态的:每个用户在服务器 RAM 中保存完整的组件状态,因此高负载应用需要内存规划和会话管理。sgcHTML 采取了不同的路线:您的 Delphi(或 C++ Builder 或 C#)代码在服务器上渲染标准的 Bootstrap 5 HTML,浏览器通过 htmx 保持交互,除非您主动选择保留状态,否则每个请求都是无状态的。

客户端只有 Bootstrap 5 加 htmx

没有捆绑的第三方 JavaScript 应用框架。客户端就是 Bootstrap 5 加 htmx(约 14 KB),因此页面更轻,在任何设备上都加载迅速。

由您掌控的纯 HTML

输出是标准的服务器端渲染 HTML,您可以在浏览器中检查它,并用任何 Bootstrap 5 主题重新设计样式(内置明亮和暗黑主题),而不是 Ext JS 的外观。

默认无状态

默认情况下,服务器 RAM 中没有每会话的完整组件状态。要保留哪些会话数据由您决定,这简化了容量规划和重启。

内置实时功能与更广的覆盖

WebSocket 推送来自同一组件集的 sgcHTMX 引擎,同样的 Tsgc* API 在 Delphi、C++ Builder 以及纯托管的 .NET 实现中均可用。

uniGUI 概念及其 sgcHTML 等效项

构建块可以干净地对应过来。这是您的团队逐屏迁移时要用的转换表。

uniGUI 概念 sgcHTML 等效项
uniForm / uniFrame 由节点组件构建的 sgcHTML 页面和面板组合
DB 感知的网格和编辑框 数据感知的 TsgcHTMLComponent_Grid / TsgcHTMLComponent_Form,直接绑定到 TDataSet
Ext JS 客户端层 Bootstrap 5 标记加 htmx(约 14 KB)
Ajax 事件 返回组件 HTML 的 htmx 片段路由
会话管理器和按用户的 RAM 状态 无状态渲染,加上您自行选择保留的会话数据
Ext 主题 任何 Bootstrap 5 主题,内置明亮和暗黑主题
uniGUI Server / HyperServer 部署 单个 sgcWebSockets 服务器二进制文件,或 WebBroker、DataSnap 或 RAD Server 宿主
轮询和推送扩展 sgcHTMX 通过 WebSocket 广播 HTML 片段(hx-swap-oob)

迁移改变的比您想象的少

迁移到 sgcHTML 替换的是 UI 层,而不是您的投入。

您的代码库和 IDE

您继续留在 RAD Studio 中使用 Delphi 或 C++ Builder。sgcHTML 组件是编译进您的服务器二进制文件的原生类,并包含完整源代码。

您的数据模块

您的 TDataSet 逻辑、查询和业务规则原样保留。89 个组件中有 27 个是数据感知的,可直接绑定到 TDataSet 或 DataSource。

您的部署习惯

您仍然交付单个自包含的可执行文件或服务,无需随之安装外部运行时。

您团队的技能

您编写 Object Pascal 或 C#,sgcHTML 负责生成 HTML、CSS 和 JavaScript。开发者无需编写任何 JavaScript。

务实的迁移路径

您不必一次迁移所有内容。这是团队在实践中遵循的四个步骤。

1

清点屏幕

列出每个 uniForm 和 uniFrame、其背后的数据集,以及哪些屏幕需要实时数据。这份清单驱动整个计划。

2

将屏幕映射到组件

使用上面的概念表和组件画廊,将每个屏幕与 sgcHTML 组件对应起来:网格、表单、图表、仪表板等等。

3

逐页重建

由于 sgcHTML 提供标准 HTTP 服务,两个服务器可以在同一反向代理后并行运行。每次迁移一个屏幕,其余部分在准备就绪前继续留在 uniGUI 上。

4

接入交互和推送

添加 htmx 交互以实现局部更新,并在应用需要实时数据的任何地方通过 sgcHTMX 引擎加入 WebSocket 推送。

我们帮您迁移

您不必独自完成这件事。告诉我们您的 uniGUI 应用、各个屏幕、其背后的数据以及您需要的实时行为,eSeGeCe 团队将帮助您规划迁移:组件映射、切合实际的迁移顺序和工作量评估。

如果您愿意,我们也可以通过 sgcCustomization HTML 为您重建应用:一次性套餐价格自 €149 起,我们的团队根据书面描述构建完整的 Web 应用,并交付一个您可以编译、部署和演进的项目。

五个实时应用,零自定义 JavaScript

这里的每一个应用都在 eSeGeCe 演示服务器上实时运行,且仅使用 sgcHTML + sgcWebSockets 构建。

ERP

客户、供应商、产品、发票和报表。

打开实时演示 →

管理 CRUD

一个紧凑的管理控制台,包含 CRUD 界面和实时搜索。

打开实时演示 →

实时监控

一个实时仪表板,其 KPI 通过 WebSockets 推送。

打开实时演示 →

客户门户

一个自助门户,包含订单、个人资料和支持。

打开实时演示 →

帮助台

一个支持工单帮助台,包含回复线程和管理仪表板。

打开实时演示 →

说句公道话:当深度的 RAD 表单设计器体验和类桌面的界面比无状态扩展更重要,并且并发用户数量有限且经过规划时,继续使用 uniGUI 是合理的选择。如果您想在决定前了解全貌,请阅读我们中立的附来源引用的并排矩阵,其中每项论断都链接到各供应商自己的文档。

超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

先在一个屏幕上试用 sgcHTML

下载包含全部 89 个组件的免费试用版,重建一个 uniGUI 屏幕,然后在您自己的浏览器中比较结果。授权按开发者计算,价格自 €299 起。