第四维度学习基础知识
本页面是 4th Dimension 学习基础知识 系列的一部分,该系列最初是为从 FileMaker Pro (FMP) 迁移到 4D 的开发人员编写的一组注释。这里的主题是网络托管 - 具体来说,当您想要将数据库驱动的应用程序发布到浏览器时,这两个平台有何不同。这种比较具有启发性,因为它揭示了两种产品之间更深层次的架构差异,并且这种差异仍然影响着您今天对 4D 部署的看法。
要点
- FileMaker Pro 的标准版可以使用 CDML(Claris 动态标记语言)在网络上托管数据库,但许可和性能限制使其不适合实际流量。
- 标准版限制在 12 小时滚动窗口内托管10 个唯一的 IP 地址 — 受众规模的硬性上限,而不是软准则。
- 如果没有 Lasso 等第三方加速器,FileMaker 的 Web 性能被广泛认为很差,而且许可条款通常禁止这种解决方法。
- 4D 的网络托管内置于 4D 标准版 和 4D Server 中,无需 HTML 或 CDML 创作,并且无需专用许可证即可进行短期测试。
- 历史上,无限 4D 网络托管需要 4D Internet Extension 许可证。
- 实践经验:选择平台时应根据其将数据发布到网络的方式,而不仅仅是存储数据的方式。
为什么 Web 托管是真正的差异化因素
大多数数据库比较都集中在表设计、表单构建器和脚本语言上。这些很重要,但它们很大程度上是内部问题——它们会影响该工具对您的愉悦程度。网络托管会影响应用程序到达“其他所有人”的方式,这就是 FileMaker Pro 和 4D 在 20 世纪 90 年代末和 2000 年代初出现巨大分歧的地方。
FileMaker Pro 的方法是将网络发布固定到桌面优先的产品上。 4D 的方法是从一开始就将网络视为一流的部署目标。这个单一的设计决策会涉及到许可、性能和您必须编写的代码量。
如果您正在评估任一平台,或者在使用 FileMaker 多年后学习 4D,了解这段历史就可以解释为什么 4D 的网络故事与您可能习惯的内容相比,感觉简单得令人怀疑。
FileMaker Pro Web 托管和 CDML
FileMaker Pro 标准版允许用户在 Web 上托管 FMP 数据库文件。该机制是 CDML(Claris 动态标记语言),这是一组嵌入普通 HTML 页面中的特殊标签。当浏览器请求页面时,FileMaker 将解析这些标签,运行相应的数据库操作,并将结果替换为 HTML,然后返回。
CDML 在当时确实很聪明。它允许具有 HTML 技能(但没有服务器端编程语言)的开发人员为 FileMaker 数据库构建可搜索、可编辑的 Web 前端。您用 HTML 编写了类似搜索表单的内容,放入 CDML 标记来定义查询和结果布局,然后由 FileMaker 处理其余的事情。
Related: — A spreadsheet-simple interface sitting on top of a real , with automations, views, and shareable interfaces..
但这种方法存在两个严重的问题,最初的注释指出了这两个问题。
10-IP 许可限制
标准版有软件和许可限制,限制在滚动的 12 小时内托管10 个唯一的 IP 地址。这值得暂停,因为它很容易被误读为“10 个并发用户”。
它不是。任何 12 小时窗口内都有 10 个“不同”访客。一旦第十一个唯一的 IP 地址到达,该访问者就会被锁定 - 即使前十个早已离开。对于少数同事使用的小型内部工具来说,这可能是可以忍受的。对于任何面向公众的事情来说,这是致命的。一个搜索引擎爬虫可以在几分钟内耗尽你的津贴。
If you are shopping: — A that plugs into the wider Zoho suite and prices per user rather than per app..
性能和 Lasso 解决方法
FileMaker 的内置 Web 引擎也很慢。 FileMaker 社区中的标准补救措施是在其前面放置一个第三方应用程序 - 最著名的是 Lasso,这是 Blue World Communications 的一款中间件产品,它与 FileMaker 数据库交互并生成 HTML,其效率远远高于 CDML。
正如原始注释所指出的,问题在于许可限制禁止在标准版上进行这种安排。因此,解决方法是存在的,但在最需要的地方却不允许。
FileMaker 确实提供了取消 IP 限制的 Unlimited 版本(当时价格约为 1,000 美元)。但即使是 Unlimited 仍然很慢,并且在实践中,仍然希望前面的 Lasso 之类的东西可以在负载下使用。您付费是为了消除许可上限,而不是为了解决潜在的性能问题。
4D Web 托管:内置而非外挂
4D采取了相反的方法。网络托管是该产品的原生功能,原始注释将其描述为“极其简单”——这种说法值得拆开而不是相信。
要点:
- 4D 标准版和 4D Server 都可以在网络上托管数据库。 您不需要单独的网络发布产品层。
- 测试是免费的。 两个版本都允许您在没有网络托管许可证的情况下托管数据库最多 一次 2 小时。这是真正的开发便利:您可以在 Web 前端上构建、测试和迭代,而无需购买任何东西。
- 无限托管需要 4D Internet Extension 许可证(历史上约为 1,000 美元)。
- 不需要 HTML、CDML 或其他标记代码。 这是标题差异。 4D 根据您已构建的数据库结构和表单生成 Web 界面。
最后一点会改变你的工作方式。在 CDML 模型中,您维护两个并行的工件:数据库和 HTML 模板。您在网络上公开的每个字段都必须在标记中手动连接。在 4D 中,您为桌面客户端设计的表单可以发布到网络上,这意味着一次设计工作可以为两个受众提供服务。
原始注释将机制推迟到该系列的后续部分以及 4D 标准版随附的手册中。这是合理的分工——“如何”本身就是一个话题——但“为什么”才是重要的。
比较两种方法
| 维度 | FileMaker Pro(标准版) | 4D(标准/服务器) |
|---|---|---|
| 网络技术 | 嵌入 HTML 中的 CDML 标签 | 本机,从数据库表单生成 |
| 需要标记创作 | 是的 — 您编写 HTML + CDML | 没有 |
| 访客限制 | 每滚动 12 小时 10 个唯一 IP | 无(具有互联网扩展许可证) |
| 免费测试窗口 | 不适用 | 一次最多 2 小时,无需许可证 |
| 负载下的性能 | 较慢;通常需要 Lasso 或类似产品 | 由 4D Web 引擎处理 |
| 允许第三方加速器 | 标准许可下禁止 | 不需要 |
| 无限托管许可证 | FMP 无限(约 1,000 美元) | 4D 互联网扩展(约 1,000 美元) |
该表使权衡变得一目了然。两个平台对无限托管的收费大致相同数量级。不同之处在于您所获得的结果:FileMaker 取消了上限,但留下了性能问题,而 4D 取消了上限并提供了引擎。
实践中如何决策
如果您今天正在选择一个平台 - 或者决定投资多少来学习 4D 的网络功能 - 历史比较表明了一系列值得提出的问题:
- 受众是谁? 少数指定的内部用户是与开放 Web 应用程序截然不同的问题。 10-IP 规则的存在正是因为 FileMaker 采用了前者。
- 您将维护多少工件? 如果发布到网络意味着维护第二组并行的模板,那么您的维护负担大约会增加一倍。更喜欢一种设计服务于多个渠道的平台。
- 什么是后路? 如果性能成为问题,您可以添加中间件吗?或者许可是否禁止这样做?不允许您使用的解决方法不是解决方法。
- 免费套餐实际上可以让您做什么? 4D 的 2 小时测试窗口是真正的开发帮助。在购买之前评估平台是否允许您构建和验证。
- 供应商的路线图指向哪里? 将网络视为原生的产品将不断改进它。一款将其视为附加组件的产品将继续将其视为一个附加组件。
对于来自 FileMaker 的开发人员来说,实际的收获是 4D 的 Web 托管不是您在项目结束时附加的功能。从您拥有数据库和表单的那一刻起,它就可用,这意味着您可以尽早构建 Web 界面原型并以此优化您的数据模型,而不是后期发现您的结构没有清晰地映射到浏览器。
本页在学习路径中的位置
本页面位于本系列的“其他”部分,旁边还有数据图表、插件以及工具和实用程序等主题。这个位置有点误导:网络托管不是一个外围问题。对于许多小型团队建设者来说,将数据库发布到浏览器的能力是选择平台的全部原因。
周围的部分——系统要求、程序结构、网络差异、运行时差异、编译器和资源——都会影响同一个决策。网络差异尤其值得与本页一起阅读,因为产品处理网络客户端(桌面或浏览器)的方式与其处理 Web 客户端的方式密切相关。
如果您按顺序学习本系列,请将此页面视为 FileMaker 到 4D 过渡不再涉及语法并开始涉及架构的时刻。一个下午就能学会的语法。架构决定了您的应用程序是否可以增长。
常见问题
什么是 CDML?它为什么重要?
CDML 代表 Claris 动态标记语言,这是 FileMaker Pro 用于将数据库发布到网络的基于标签的系统。它允许开发人员将数据库操作嵌入普通 HTML 页面中,因此页面可以运行查询并呈现结果,而无需单独的服务器端编程语言。这很重要,因为它一度是将 FileMaker 数据库放到网络上的唯一方法。
为什么 10-IP 限制是一个问题?
该限制计算的是 12 小时滚动窗口内的“唯一 IP 地址”,而不是并发用户数。一旦十个不同的访问者访问了该窗口中的站点,其他人就会被阻止,直到窗口向前滚动。单个自动爬虫几乎可以立即耗尽配额,这使得标准版无法用于任何真正的公共站点。
4D 真的不需要 HTML 或 CDML 吗?
根据原始注释,是的 - 在网络上托管 4D 数据库不需要编写 HTML、CDML 或其他标记。 4D 根据您已经设计的数据库结构和表单生成 Web 界面。 4D 手册和本系列的后续部分中介绍了这些机制。
我可以在不购买许可证的情况下尝试 4D 网络托管吗?
是的。 4D 标准版和 4D Server 都允许您在网络上托管数据库每次最多两小时,而无需网络托管许可证。该窗口用于测试和开发,它允许您在提交无限托管的 4D Internet Extension 许可证之前验证 Web 前端。
Lasso 是 FileMaker 的合法解决方案吗?
Blue World Communications 的 Lasso 是一种广泛使用的中间件产品,它位于 FileMaker 数据库前面,可以比 CDML 更有效地生成 HTML。它在技术上是有效的,但 FileMaker 的标准版许可禁止在该配置中使用它,因此最需要它的人无法合法部署它。
如果我今天学习 4D,这段历史还重要吗?
这有助于理解 4D 的网络托管为何如此运作。该平台的设计将网络作为原生部署目标而不是附加组件,并且该设计选择仍然决定着表单、数据结构和许可如何组合在一起。了解与 FileMaker 的对比可以使 4D 模型更容易理解。
进一步阅读
- 网络托管服务 — 维基百科,了解托管模型本身的背景。
- FileMaker — 维基百科,了解该平台的历史及其在 CDML 时代之后的演变。
- 4D(编程语言) — 维基百科,了解 4D 平台的更广泛背景。
- 万维网联盟 (W3C) — CDML 页面所基于的 HTML 规范的标准机构。
Frequently asked questions
什么是 CDML?它为什么重要?
CDML 代表 Claris 动态标记语言,这是 FileMaker Pro 用于将数据库发布到网络的基于标签的系统。它允许开发人员将数据库操作嵌入普通 HTML 页面中,因此页面可以运行查询并呈现结果,而无需单独的服务器端编程语言。这很重要,因为它一度是将 FileMaker 数据库放到网络上的唯一方法。
为什么 10-IP 限制会成为一个问题?
该限制计算的是 12 小时滚动窗口内的唯一 IP 地址,而不是并发用户数。一旦十个不同的访问者访问了该窗口中的站点,其他人就会被阻止,直到窗口向前滚动。单个自动爬虫几乎可以立即耗尽配额,这使得标准版无法用于任何真正的公共站点。
4D 真的不需要 HTML 或 CDML 吗?
根据原始注释,是的 - 在网络上托管 4D 数据库不需要编写 HTML、CDML 或其他标记。 4D 根据您已经设计的数据库结构和表单生成 Web 界面。 4D 手册和本系列的后续部分中介绍了这些机制。
我可以在不购买许可证的情况下尝试 4D 网络托管吗?
是的。 4D 标准版和 4D Server 都允许您在网络上托管数据库一次长达两个小时,而无需网络托管许可证。该窗口用于测试和开发,它允许您在提交无限托管的 4D Internet Extension 许可证之前验证 Web 前端。
Lasso 是 FileMaker 的合法解决方案吗?
Blue World Communications 的 Lasso 是一种广泛使用的中间件产品,它位于 FileMaker 数据库前面,可以比 CDML 更有效地生成 HTML。它在技术上是有效的,但 FileMaker 的标准版许可禁止在该配置中使用它,因此最需要它的人无法合法部署它。
如果我今天学习 4D,这段历史仍然重要吗?
作为理解 4D 网络托管为何如此运作的一种方式,它很重要。该平台的设计将网络作为本机部署目标而不是附加组件,并且该设计选择仍然决定着表单、数据结构和许可如何组合在一起。了解与 FileMaker 的对比可以使 4D 模型更容易推理。进一步阅读 - [网络托管服务](https://en.wikipedia.org/wiki/Web_hosting_service) — 维基百科,了解托管模型本身的背景。 - [FileMaker](https://en.wikipedia.org/wiki/FileMaker) — 维基百科,了解该平台及其历史
Try FileMaker Free for 45 Days
The long-running relational database platform for teams that need custom apps on desktop, web, and mobile from a single file.