第四维度学习基础知识
4D 最初是 4th Dimension 的缩写,是 4D SAS(以前称为 ACI)的关系数据库管理系统和应用程序开发环境。它将专有的关系数据库引擎与集成的面向对象语言(4D Language,历史上的“4D”或“4D 代码”)和可视化表单设计器配对。对于小团队 IT 构建者和公民开发人员来说,它的吸引力在于一个环境涵盖数据存储、业务逻辑、用户界面和部署 - 您不必仅仅为了发布一个可运行的业务应用程序而组装数据库服务器、单独的前端框架和 Web 堆栈。
本页是4th Dimension 学习基础系列的一部分。它重点关注历史上将 4D 扩展到纯粹数据处理之外的插件模块(4D Write、4D Calc 和 4D Draw),并将它们置于 4D 如何构建、许可和部署的更广泛背景中。
要点
- 4D 是一个集成的数据库加开发环境:表、表单、方法和部署位于一个产品中,而不是缝合在一起的堆栈中。
- 经典的插件三重奏 — 4D Write(文字处理)、4D Calc(电子表格)和 4D Draw(绘图) — 将 4D 扩展到“集成应用程序”系统,而不仅仅是数据库。
- 插件在表单内显示为区域,因此其内容的行为与任何其他字段类似:可以存储、显示并从 4D 代码引用。
- 热链接让一个插件中更改的数据立即更新到另一个插件中,这是使跨模块文档成为可能的机制。
- 现代 4D 已在很大程度上将这些功能吸收到核心产品及其组件/插件架构中,但设计思想仍然解释了 4D 表单 和对象今天如何工作。
- 选择是否使用插件(或现代组件)是一个构建还是购买的决定:权衡许可、部署复杂性以及该功能是否属于数据层或表示层。
4D 的结构如何
了解插件需要了解 4D 向开发人员公开的层:
- 结构 — 模式:表、字段、字段类型、关系和索引。这是数据层。
- 表单 — 表示层。表单包含可视化布局的对象(字段、按钮、变量和插件区域)。
- 方法 — 逻辑层。对象方法、表单方法和项目/数据库方法保存响应事件的 4D 代码。
- 插件和组件 — 添加核心本身不提供的功能的可选模块。
重要的架构点是插件区域“只是表单上的另一个对象”。这意味着文字处理文档、电子表格或绘图可以绑定到字段,通过代码中的名称引用,并被视为数据。这是一个与将文档视为不透明文件附件的模型截然不同的模型。
经典插件三重奏
原始文档将 4D Write、4D Calc 和 4D Draw 描述为“与 4D 一起形成 4D 环境”的模块。每个都是单独许可的,历史上每个平台的价格都比较适中,并且每个都扩展了不同的功能。
4D 写入 — 文字处理
4D Write 将文字处理功能扩展到 4D 数据库。它允许您直接在 4D 表单中包含信件、报告、备忘录和注释等文档。
Related: — A spreadsheet-simple interface sitting on top of a real , with automations, views, and shareable interfaces..
- 在表单中,4D Write 区域显示为数据的一部分,就像名称或任何其他信息一样。
- 作为单独的应用程序,您可以在外部窗口中使用 4D Write,其中您的工作可以独立于数据库,也可以链接到数据库或其他插件中的信息。
实际用途包括由记录数据驱动的邮件合并样式信件、格式化报告正文以及附加到客户或案例记录的丰富注释。
4D Calc — 电子表格
4D Calc 为您的 4D 数据库添加了电子表格功能。 4D Write 处理散文,4D Calc 处理数字和公式网格。
- 对于预算、估算以及用户希望像电子表格一样编辑的任何表格计算很有用。
- 由于是插件区,工作表可以与记录一起存储并从4D代码中引用。
4D 绘图 — 绘图
4D Draw 将绘图功能扩展到您的 4D 数据库 表单,并使您能够在表单中包含自定义绘图。
If you are shopping: — A that plugs into the wider Zoho suite and prices per user rather than per app..
- 当在表单中使用时,4D Draw 区域将作为数据的一部分出现,就像任何其他信息一样。
- 您可以打开或导入 PICT 格式(来自其他面向对象的绘图应用程序)、MacPaint 格式和 Encapsulated PostScript (EPSF) 格式的绘图。
这些导入格式是有用的历史标记:它们反映了 4D 首次成熟的以 Macintosh 为中心的桌面出版时代。现代 4D 工作通常使用平台本机图像处理和标准格式(例如 PNG、JPEG 和 PDF),但其基本思想(绑定到记录的可绘制区域)仍然存在。
为什么“集成应用程序”很重要
最初的框架值得保留,因为它解释了设计理念:通过这些插件,4D 成为一个可以运行集成应用程序的系统,以及一个可以存储和操作信息的数据库。
这些插件可以从 4D 内部访问,它们可以在 4D 中独立工作,也可以相互协作。结缔组织是热链接:
热链接是动态的——在一个插件中更改的信息会立即在另一个插件中更新。
一个具体示例:4D Calc 工作表计算总计,4D Write 信函引用该总计,并且两者都存储在同一记录中。更改工作表中的数字,字母就会反映它,无需手动复制步骤。这就是集成应用承诺的缩影。
插件与现代组件:如何决定
插件模型已经发展。现代 4D 附带组件架构和大量内置命令,许多曾经需要单独购买的功能现在都是原生的或作为组件提供。当您今天决定如何添加功能时,请使用以下条件列表:
| 标准 | 喜欢内置/本机功能 | 喜欢插件或组件 |
|---|---|---|
| 数据模型拟合 | 能力是核心(文本、数字、日期、关系) | 功能专业化(富文本、图表、设备集成) |
| 部署 | 您想要一个简单的安装 | 您可以管理额外的许可和版本控制 |
| 维护 | 您希望 4D SAS 来维护它 | 第三方维护它,并且您接受这种依赖性 |
| 便携性 | 您可以移动平台或移动到网络 | 该功能是特定于桌面的,这是可以接受的 |
| 成本 | 预算紧张 | 该功能证明了其许可证的合理性 |
一个实用的规则:如果该功能属于数据层(存储和查询信息),则更喜欢本机功能。如果它属于表示层(文档或绘图的外观),则插件或组件通常是正确的工具。
针对新 4D 开发人员的实用指南
如果您今天正在学习 4D,那么插件的历史并不是琐事 — 它教会了仍然适用的习惯:
- 故意将对象绑定到字段。 确定表单对象是存储数据的显示还是瞬态变量。这也是插件领域强制做出的决定。
- 将逻辑保留在方法中,而不是布局中。 表单对象应负责呈现;方法应该决定。
- **考虑更新传播。**热链接的想法实际上是为了避免过时的数据副本。在现代应用程序中,这意味着标准化数据并引用它而不是复制它。
- 尊重许可模型。 4D 历来将开发环境、部署/运行时和可选模块分开。在致力于架构之前,请先了解用户的需求。
- 针对网络进行规划。 4D 可以服务于网络和 REST 客户端;如果可能进行远程访问,请从一开始就考虑到这一点来设计您的结构和方法。
4D 在低代码领域的地位
4D 比现代“低代码”类别早了数十年,但它属于同一家族的思想:视觉设计器加上脚本语言加上托管运行时。值得将其与您可能已经知道的相邻工具和标准进行比较:
- FileMaker(现为 Claris FileMaker)——一款类似的集成数据库和 UI 产品,拥有强大的公民开发人员追随者。
- Microsoft Access — 具有表单和宏的桌面关系数据库,广泛用于小型团队应用程序。
- 低代码平台,例如分析公司跟踪的平台 - 更广泛、云优先,并且在深度关系建模方面通常较弱。
- SQL 标准 — 4D 的查询语言和 SQL 支持将其连接到更广泛的关系世界;有关标准词汇,请参阅有关 SQL 的维基百科文章。
- 关系模型 — 所有这些工具的理论基础; 关系模型 文章是一个很好的复习。
对于数据库系统的权威背景,计算机协会 和 IEEE 计算机协会 发布了广泛使用的课程和标准材料。对于面向 Web 的问题(例如 HTTP 和 REST),万维网联盟 是规范参考。
常见陷阱和警告
- 不要将插件区域与文件字段混淆。 插件区域是一个交互式对象;文件或图片字段是存储。它们可以组合,但它们不是同一件事。
- 注意平台假设。 4D Draw 中的 PICT 和 MacPaint 导入格式是旧版 Mac 格式。不要围绕它们构建现代工作流程。
- 对您的依赖项进行版本控制。 插件和组件必须与您的 4D 版本匹配。不匹配是启动失败的常见原因。
- 运行时预算。 开发许可证和部署/运行时许可是 4D 模型中单独关注的问题;为两者制定计划。
- 显式测试热链接式行为。 任何时候同一数据的两个视图可能出现分歧,请编写一个测试来证明它们保持同步。
常见问题
4D Write 有何用途?
4D Write 为 4D 数据库添加了文字处理功能。它允许您在表单中嵌入信件、报告、备忘录和注释等文档,其中文档的行为与任何其他数据一样。您还可以在外部窗口中打开它,独立于数据库或链接到数据库信息。
4D Calc 和普通 4D 字段有什么区别?
普通字段存储单个值,而 4D Calc 提供包含公式和单元格网格的电子表格区域。当用户希望直接编辑表格计算时,它非常有用。因为它是一个插件区域,所以工作表仍然可以存储在记录中并从记录中引用。
4D Draw 可以导入哪些文件格式?
4D Draw 可以从其他面向对象的绘图应用程序、MacPaint 格式和 Encapsulated PostScript (EPSF) 格式打开或导入 PICT 格式的绘图。这些是传统的桌面发布格式,因此现代项目通常使用标准图像和 PDF 格式。
4D 中的热链接是什么?
热链接是插件之间的动态连接,其中一个插件中更改的信息会立即在另一个插件中更新。通过这种机制,同一记录上的电子表格、文档和绘图可以保持一致,而无需手动复制。
今天我还需要这些插件来构建 4D 应用程序吗?
未必。现代 4D 本身包含许多功能并支持组件架构,因此许多曾经需要单独插件的功能现在都已内置或作为组件提供。插件概念仍然有用,因为它们解释了 4D 表单对象和数据绑定的工作原理。
初学者应该如何选择原生功能和插件?
当功能属于数据层(存储、查询和关联信息)时,首选本机功能。当功能是专门的和面向表示层的(例如丰富的文档或绘图)并且您可以接受随之而来的额外许可和维护时,请考虑使用插件或组件。
Frequently asked questions
4D Write 有何用途?
4D Write 为 4D 数据库添加了文字处理功能。它允许您在表单中嵌入信件、报告、备忘录和注释等文档,其中文档的行为与任何其他数据一样。您还可以在外部窗口中打开它,独立于数据库或链接到数据库信息。
4D Calc 和普通 4D 场有什么区别?
普通字段存储单个值,而 4D Calc 提供包含公式和单元格网格的电子表格区域。当用户希望直接编辑表格计算时,它非常有用。因为它是一个插件区域,所以工作表仍然可以存储在记录中并从记录中引用。
4D Draw 可以导入哪些文件格式?
4D Draw 可以从其他面向对象的绘图应用程序、MacPaint 格式和 Encapsulated PostScript (EPSF) 格式打开或导入 PICT 格式的绘图。这些是传统的桌面发布格式,因此现代项目通常使用标准图像和 PDF 格式。
4D 中的热链接是什么?
热链接是插件之间的动态连接,其中一个插件中更改的信息会立即在另一个插件中更新。通过这种机制,同一记录上的电子表格、文档和绘图可以保持一致,而无需手动复制。
现在我还需要这些插件来构建 4D 应用程序吗?
未必。现代 4D 本身包含许多功能并支持组件架构,因此许多曾经需要单独插件的功能现在都已内置或作为组件提供。插件概念仍然有用,因为它们解释了 4D 表单对象和数据绑定的工作原理。
初学者应该如何选择原生功能和插件?
当功能属于数据层(存储、查询和关联信息)时,首选本机功能。当功能是专门的和面向演示的(例如丰富的文档或绘图)并且您可以接受随之而来的额外许可和维护时,请考虑使用插件或组件。
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.