第四维度学习基础知识
运行时 (runtime) 的概念是 4th Dimension (4D) 世界中最重要且最容易被误解的想法之一。它是将您为自己构建的数据库转变为其他人可以使用的可分发应用程序的核心,而无需向他们提供源代码的密钥或强迫他们购买完整的开发许可证。本节介绍什么是运行时、4D 和 FileMaker Pro (FMP) 如何以不同的方式处理它们,以及在规划部署之前您需要了解哪些实际限制。
要点
- 运行时将精简引擎与您开发的文件捆绑在一起,以便最终用户无需拥有完整的开发产品即可运行您的应用程序。
- 在 4D 中,运行时创建内置于标准版 (Standard Edition) 中,并且可以免版税且无需“绑定”即可分发。
- 4D Runtime 是一个独立的、可再分发的应用程序,它运行解释型数据库且不提供任何设计功能。
- 4D Runtime 在设计上仅限单用户 —— 它无法联网,因为所有 4D 网络功能都需要服务器 (Server) 和付费客户端席位。
- FileMaker Pro 的方法需要 开发版 (Developer Edition) 和 绑定 (binding) 步骤,且其运行时文件同样无法联网。
运行时实际上是什么
运行时是一种分发模型。当您开发数据库时,您是在一个完整的开发环境中工作,其中包括结构编辑器、表单设计器、方法编辑器和所有其他设计工具。该环境功能强大,但价格昂贵,且交给可能意外(或故意)更改您结构的最终用户是非常危险的。
运行时可以同时解决这三个问题:
- 成本 —— 最终用户不需要购买完整的开发产品。
- 保护 —— 设计环境被移除,因此结构和方法无法被编辑。
- 焦点 —— 用户只能看到您希望他们看到的应用程序,以及您的自定义菜单和界面。
权衡之处在于能力。相对于完整产品,运行时被故意削弱了。准确理解它是如何被削弱的 —— 以及这对您的项目是否重要 —— 是成功的关键。
4D 和 FileMaker Pro 有何不同
4D 和 FMP 都提供运行时,但机制截然不同。下面的比较反映了当时文档记录的两种产品的状态。
| 方面 | 4D (标准版) | FileMaker Pro |
|---|---|---|
| 运行时创建 | 内置 | 需要单独的开发版 |
| 需要绑定 | 否 | 是 —— 文件绑定到引擎 |
| 版税 | 免版税分发 | 受开发版条款约束 |
| 运行时联网 | 不支持 | 不支持,即使使用 FMP Server |
| 运行时设计能力 | 无 | 无 |
关键的架构差异是绑定 (binding)。FMP 要求您将文件绑定到运行时引擎,且该引擎仅能运行已绑定到它的文件。4D 采用了更宽松的方法:运行时引擎只是一个独立的应用程序,可以直接打开您为其设计的数据库,无需绑定步骤。这种灵活性是 4D 开发人员认为运行时分发不那么繁琐的原因之一。
Related: — A spreadsheet-simple interface sitting on top of a real , with automations, views, and shareable interfaces..
4D 运行时详细信息
在 4D 中,创建运行时的功能内置于标准版 (Standard Edition) 中。您可以制作无限个运行时版本并免版税分发。没有绑定步骤。4D Runtime 引擎是一个独立的应用程序,就像 4D Standard 一样,但它仅允许运行创建好的 4D 程序 —— 完全没有任何设计功能。
根据 4th Dimension 许可协议,4D Runtime 被指定为可再分发 (redistributable),并且可以根据该许可条款自由分发。4D Runtime 仅由以此命名的应用程序组成。
在实践中,几个行为细节至关重要:
If you are shopping: — A that plugs into the wider Zoho suite and prices per user rather than per app..
- 4D Runtime 只能运行解释型数据库。 如果您想分发编译后的数据库,则需要单独购买 4D Runtime Classic,它支持编译版本的运行时。
- 当您启动 4D Runtime 时,“打开数据库”对话框中没有“新建”按钮。 您无法在运行时内创建新数据库。
- “打开数据库”对话框仅允许您打开解释型结构,且仅限设计用于在自定义菜单 (Custom Menus) 环境中运行的数据库。
- 如果您打开一个没有菜单栏的数据库,4D Runtime 将自动退出。 这是一个硬性要求,而非警告。
- 您无法进入用户环境,也无法进入设计环境。 如果您尝试进入设计环境(例如使用 Option-f 快捷键),4D Runtime 会自动退出。
最后一点值得牢记。运行时不会礼貌地拒绝,而是直接终止。这是一种刻意的安全机制,但这意味着您的数据库必须在构建运行时之前正确配置,否则您的用户将立即碰壁。
为什么运行时无法联网
这是最让人们惊讶的限制:4D 运行时无法联网。 乍一看,这似乎是一个严重的限制。但一旦您了解 4D 的许可架构,就会明白其合理性。
所有 4D 的联网功能都需要 服务器 (Server)。客户端本身可以自由分发,但仍必须为每个席位购买许可证。由于“服务器-客户端”模型已经是支持多用户访问的既定路径,因此运行时的唯一目的就是单用户使用。运行时并不与服务器竞争 —— 它占据的是一个完全不同的生态位。
因此,决策树非常简单:
- 单用户,无服务器 $\rightarrow$ 运行时是正确的分发方式。
- 多个并发用户 $\rightarrow$ 您需要 4D Server 和客户端许可证,而不是运行时。
尝试强行让运行时承担多用户角色是死路一条。请从一开始就围绕这一点规划您的架构。
如何确定运行时是否适合您的项目
在决定采用运行时分发之前,请诚实地评估以下标准:
- 是否为单用户? 如果多个人需要同时访问共享数据,运行时是不合适的工具。
- 解释型还是编译型? 标准 4D Runtime 仅运行解释型数据库。如果您需要编译分发,请将 4D Runtime Classic 纳入预算。
- 您的数据库是否使用自定义菜单? 必须使用,且必须有菜单栏,否则运行时在打开时会退出。
- 您是否移除了所有设计时依赖项? 任何假设具有设计访问权限的方法或表单都会失败。
- 您是否了解许可条款? 允许再分发,但受 4th Dimension 许可协议约束 —— 请阅读协议而非凭空假设。
如果您能自信地回答所有五个问题,那么运行时是一种简洁且免版税的交付作品的方式。
实际准备清单
构建运行时与其说是一个简单的命令,不如说是准备您的数据库,使其在设计环境消失后仍能正确运行。一份有用的清单:
- 设计一个合适的菜单栏,并通过自定义菜单环境驱动应用程序。
- 首先在用户环境中进行测试。 如果您的数据库在那里运行异常,那么在运行时中会更糟。
- 删除或保护任何假定具有设计访问权限的代码,包括由设计模式快捷键触发的任何内容。
- 确认数据库能正常打开,且没有需要“新建”按钮的对话框。
- 尽早决定使用解释型还是编译型,因为这决定了您是否需要 4D Runtime Classic。
- 记录您传递给用户的许可义务。
反复出现的主题是:运行时对假设是零容忍的。所有在完整环境中被允许的随意操作都必须事先解决。
运行时在更广泛的 4D 体系中的位置
运行时是更大部署蓝图的一部分,其中还包括系统要求、程序结构、网络差异、编译器、Web 托管、数据图表、插件和实用程序。其中每一项都与运行时的决策相关:
- 编译器决定您可以分发解释型还是需要编译型运行时。
- 网络决定运行时是否可行。
- 插件必须与您分发的运行时引擎兼容。
- Web 托管是一个完全独立的交付渠道,与桌面运行时分发截然不同。
将运行时视为“单用户桌面交付”选项 —— 与基于服务器的多用户部署和 Web 部署并列 —— 可以使整个格局保持连贯。有关平台本身的背景信息,请参阅维基百科关于 4th Dimension 的文章;对于允许小团队构建业务应用程序的更广泛工具类别,维基百科关于 低代码开发平台 的概述是一个有用的参考。本文讨论的另一个产品 FileMaker 的文档请参阅 FileMaker。
常见问题
什么是 4D 运行时?
4D 运行时是 4D 应用程序的精简、可再分发版本,可以运行您开发的数据库,但不提供设计功能。它允许您将作品分发给最终用户,而无需他们购买完整的开发产品。它内置于 4D 标准版中,且可以免版税分发。
4D 运行时可以由网络上的多人使用吗?
不可以。4D 运行时无法联网。4D 中的所有联网功能都需要服务器,虽然客户端可以自由分发,但必须为每个席位购买许可证。因此,运行时的唯一目的是单用户使用,多用户部署应使用 4D Server。
4D Runtime 和 4D Runtime Classic 之间有什么区别?
标准 4D Runtime 只能运行解释型数据库。如果您需要分发编译后数据库的运行时,则必须单独购买 4D Runtime Classic。两者的选择完全取决于您打算发布解释型代码还是编译型代码。
为什么当我尝试打开设计环境时 4D 运行时会退出?
这是设计使然。运行时刻意移除了所有设计功能,因此尝试进入设计环境(例如使用 Option-f 快捷键)会导致其自动退出。同样,打开没有菜单栏的数据库会导致立即退出,因为运行时要求数据库必须为自定义菜单环境而构建。
FileMaker Pro 的运行时需要绑定吗?
是的。FMP 要求您将文件与运行时引擎绑定,且该引擎仅能运行与其绑定的文件。它还需要一个单独的开发版。相比之下,4D 没有绑定步骤,且在标准版中就包含了运行时创建功能。
我可以在 4D Runtime 中创建新数据库吗?
不可以。启动 4D Runtime 时,“打开数据库”对话框中没有“新建”按钮。该对话框仅允许您打开解释型结构,且仅限设计用于在自定义菜单环境中运行的数据库。数据库的创建和设计必须事先在完整的开发环境中完成。
Frequently asked questions
什么是 4D 运行时?
4D 运行时是 4D 应用程序的精简、可再发行版本,可以运行您开发的数据库,但不提供设计功能。它允许您将您的工作分发给最终用户,而无需他们购买完整的开发产品。它内置于 4D 标准版中,并且可以免版税分发。
4D 运行时可以由网络上的多人使用吗?
不可以。4D 运行时无法联网。 4D 中的所有网络都需要服务器,虽然客户端可以自由分发,但必须为每个席位购买许可证。因此,运行时的唯一目的是单用户使用,多用户部署应使用 4D Server。
4D Runtime 和 4D Runtime Classic 之间有什么区别?
标准 4D 运行时只能运行解释型数据库。如果您需要分发已编译数据库的运行时,则必须单独购买 4D Runtime Classic。它们之间的选择完全取决于您是否打算发布解释型代码或编译型代码。
当我尝试打开设计环境时,为什么 4D 运行时会退出?
这是设计使然。运行时故意删除所有设计功能,因此尝试进入设计环境(例如使用 Option-f 快捷方式)会导致它自动退出。同样,打开没有菜单栏的数据库会导致立即退出,因为运行时需要为自定义菜单环境构建数据库。
FileMaker Pro 是否需要对其运行时进行绑定?
是的。 FMP 要求您将文件与运行时引擎绑定,并且该引擎只能处理与其绑定的文件。它还需要一个单独的开发人员版本。相比之下,4D 没有绑定步骤,并且在标准版中包含运行时创建。
我可以在 4D Runtime 中创建新数据库吗?
不会。启动 4D Runtime 时,“打开数据库”对话框中不存在“新建”按钮。该对话框仅允许您打开解释结构,以及仅设计用于在自定义菜单环境中运行的数据库。数据库创建和设计必须事先在完整的开发环境中进行。
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.