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

从 IntraWeb 迁移到 sgcHTML

Atozed Software 的 IntraWeb 是历史最悠久的 Delphi Web 框架之一:VCL 风格的表单在 IDE 中设计并在服务器端渲染为 HTML,RAD Studio 甚至附带一个限制版。它成熟且为 Delphi 开发者所熟悉。运行 IntraWeb 应用的团队通常在需要现代、响应式的 Bootstrap 5 标记、更轻量的局部页面更新和 WebSocket 实时功能时开始关注 sgcHTML,同时仍然使用他们已经熟悉的 Delphi 语言和 IDE。

架构上有哪些变化

在经典的 IntraWeb 模型中(如 Atozed Software 所述),VCL 风格的表单在 RAD Studio IDE 中设计并在服务器端渲染为 HTML,每个用户对应一个有状态会话。该模型成熟且为人熟悉。生成的标记早于现代 Bootstrap 布局,因此响应式、移动优先的结果通常需要额外的 CSS 工作。sgcHTML 保留了服务器端渲染的思路,并改变了围绕它的各个环节。

开箱即用的 Bootstrap 5 标记

每个组件都渲染干净、语义化的 Bootstrap 5 HTML。页面默认即为响应式和移动优先,可用任何 Bootstrap 主题重新设计样式,且内置明亮和暗黑主题。

htmx 局部更新

浏览器不再进行整个表单的往返,而是通过 htmx(约 14 KB)请求 HTML 片段,服务器只返回页面中发生变化的那一部分。

状态由您决定

服务器 RAM 中不再有强制的按用户 UI 对象树。页面以无状态方式渲染,应用要保留哪些会话状态(如果需要的话)由您决定。

内置实时功能与托管

WebSocket 推送通过 sgcHTMX 引擎属于同一组件集。这些组件可运行在 sgcWebSockets 服务器中,也可运行在 WebBroker、DataSnap 和 RAD Server 宿主中,还提供纯托管的 .NET 实现。

IntraWeb 概念及其 sgcHTML 等效项

这些概念可以干净地对应过来。以下是每个熟悉的 IntraWeb 构建块在 sgcHTML 中的落点。

IntraWeb 概念sgcHTML 等效项
在 IDE 中设计的 IWForm使用 TsgcHTMLPageBuilder 和节点组件组合而成的页面
IW 控件(TIWEdit、TIWGrid、TIWButton)TsgcHTMLComponent_Form、TsgcHTMLComponent_Grid、TsgcHTMLComponent_Chart,以及 89 个组件目录中的其余组件
DB 感知的 IW 控件27 个数据感知组件,直接绑定到 TDataSet / DataSource
OnAsyncClick 回调返回组件 HTML 的 htmx 片段路由
按用户的会话对象无状态页面,加上您自行选择的会话策略
ServerController 部署单个 sgcWebSockets 服务器可执行文件,或 WebBroker / DataSnap / RAD Server 宿主
自定义模板和 CSSBootstrap 5 主题,内置明亮和暗黑模式
用定时器和轮询获取实时数据通过 WebSocket 广播 HTML 片段(hx-swap-oob)

您保留的内容

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

您的代码库和 IDE

您继续在 RAD Studio 中使用 Delphi 或 C++ Builder 工作。sgcHTML 组件是编译进您的服务器二进制文件的原生类。

您的数据模块

现有的 TDataSet 逻辑、数据模块和数据库驱动可直接接入 27 个数据感知组件。不需要新的数据层。

您的部署习惯

像今天一样,部署单个自包含的可执行文件或服务。不需要外部运行时。

您团队的语言技能

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

务实的迁移路径

您不需要一次性推倒重写。四个步骤,逐屏迁移。

1

清点屏幕

列出各个 IWForm、每个表单上的控件、其背后的数据集,以及哪些屏幕需要实时数据。

2

映射每个屏幕

使用上面的表格和包含全部 89 个组件的组件画廊,将每个屏幕与 sgcHTML 组件对应起来。

3

逐页重建

由于 sgcHTML 提供标准 HTTP 服务,两个服务器可以在同一反向代理后并行运行,您可以每次只迁移一个屏幕。

4

接入交互和推送

在需要提交和刷新的屏幕上添加 htmx 交互,并在应用需要实时数据的地方加入 WebSocket 推送。

我们帮您迁移

您不必独自完成这件事。告诉我们您的 IntraWeb 应用、各个屏幕、其背后的数据以及您需要的实时行为,eSeGeCe 团队将帮助您规划迁移并提出组件映射方案。如果您愿意,我们也可以通过 sgcCustomization HTML 为您重建应用,一次性套餐价格自 €149 起。

sgcHTML 本身包含完整源代码,按开发者授权,价格自 €299 起,并需要 sgcWebSockets Professional 或 Enterprise。

实际运行效果

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

ERP

一个完整的 ERP Web 应用:客户、供应商、产品、发票和报表。

打开实时演示 →

管理 CRUD

一个紧凑的管理控制台,包含 CRUD 界面、实时搜索和基于角色的访问控制。

打开实时演示 →

实时监控

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

打开实时演示 →

客户门户

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

打开实时演示 →

帮助台

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

打开实时演示 →

说句公道话:如果您已经拥有一个正常运行的 IntraWeb 应用、团队熟练掌握其 VCL 风格的服务器端表单模型,并且是并发用户数量适中的内部工具,那么继续使用 IntraWeb 是合理的选择。如果您想用证据来权衡各个选项,我们中立的对比页面将 sgcHTML、IntraWeb 和其他 Delphi Web 框架放在一个附来源引用的并排矩阵中。

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

先在一个屏幕上试用 sgcHTML

下载包含全部 89 个组件的免费试用版,将一个 IntraWeb 屏幕重建为 Bootstrap 5 页面。这第一个页面能告诉您的,比任何对比表都多。