你的位置: 首页 > 新闻博客 > 技术博客

模型驱动架构(MDA)框架Bold for Delphi的历史与未来

2024-12-08 19:15:53

屏幕截图_8-12-2024_194429_blogs.embarcadero.com.jpeg


Bold for Delphi 框架是由瑞典公司 BoldSoft 于 1990 年代后期开发的模型驱动架构 (MDA) 框架。Jan Norden 是该公司创始人之一。Bolds 的主要关注点是使开发人员能够通过在更高的抽象级别定义应用程序的数据结构和业务规则来创建业务应用程序,而不是手动编写低级代码。


2002 年,Borland 收购了 BoldSoft 公司,Bold for Delphi 包含在 Borland 发布的 Delphi 7 Architect 架构师版中。这使得 Delphi 开发人员更容易使用该框架,并鼓励它在 Delphi 生态系统中采用。然而,在 Borland 将其开发工具部门出售给 CodeGear 之后。后来 Embarcadero 又接管了Delphi。现在,Bold for Delphi 不再作为 Delphi IDE 的一部分被积极开发。然而Bold for Delphi 已在 Delphi 7 的数百个项目中使用,现在由于没有 Code/Gear/Embarcadero 的支持,那些继续使用Bold for Delphi 的开发人员现在被抛弃了。


好消息是Bold for Delphi 的开发从未完全停止。在 Borland 收购 Boldsoft Ahola Transport 之前,一家芬兰公司从 Boldsoft 购买了Bold for Delphi源代码许可证。他们为运输业务开发了一个内部 ERP 应用程序 Attracs,他们现在可以完全访问 Bolds 源代码。

 

2010 年左右,Attracs 公司聘请了一位来自塞尔维亚的Delphi顾问 Daniel Mauric,主要是因为他对 Bold 有深入的了解。事实证明,这是一个非常好的举措。现在,Bold for Delphi 的开发确实获得了动力。Daniel 对 Bold 进行了无数次优化、错误修复,并且添加了一些全新的功能。

 

但一个棘手问题是 Bolds 知识产权 (IP) 仍然由 Embarcadero 持有。即使我们想与源代码周围的其他开发人员合作,我们也无法合法地发布我们的更改。2012 年 5 月,我 Roland Bengtsson 提出了一个请愿书,要求发布带有开源许可证的 Bold 源码。请愿书引起了人们的注意。过了一段时间,当我联系 Embarcadero 时,我们同意会面,当时看起来很有希望。但后来 Embarcadero 改变了主意,设置了不合理的条件,比如所有带有源码的更改都仍然是 Embarcaderos IP。一晃几年过去了......

 

当Embarcadero 的 Delphi 产品经理变更为 Marco Cantu时,事情出现了转机,当我和他讨论这个问题时,我很快注意到他对此有更切合实际的看法。Marco 意识到唯一的出路是将 Bold 开源。我不知道幕后发生了什么,但 Marco 成功说服了 Embarcaderos 管理层,并在 2020 年 9 月 22 日发表了这篇博客!非常感谢@Marco Cantu感谢他的工作!

 

我们公司现在更名为 Ahola Digital,继续与我们的主要 Bold 应用程序 Attracs 合作。感谢 Daniel Mauric,不断升级完善我们的 Bold 源码。这些更改现在发布在上面的存储库中。当然还有很多工作要做。许多内部工具和源代码尚未提交到存储库中。

 


Bold for Delphi 的主要目标

Bold for Delphi 的主要目的是通过自动化数据持久性、对象生命周期管理和业务规则实施来简化业务应用程序的开发

它强调关注点分离,让开发人员专注于定义模型(业务逻辑和规则),而框架则处理样板任务,例如: 

  1. 对象关系映射 (ORM)
  2. 与数据库自动同步数据
  3. 用户界面中的实时数据更新
  4. 业务逻辑约束和规则的实现

它基本上遵循 MDA 方法,其中应用程序逻辑从模型派生,从而减少重复代码编写并提高应用程序之间的一致性。


Bold for Delphi 的主要组成部分

  1. Bold 模型和 UML 集成:

    • 开发人员使用 UML 图定义应用程序的数据模型。
    • Rational Rose 受支持,但遗憾的是 IBM 支持
    • 然后,该模型被转换为具有相关行为和持久化规则的 Delphi 类。
  2. Bold业务类

    • 这些是从 UML 模型生成的 Delphi 类。
    • 它们表示业务对象,包含属性、关联和行为逻辑。
  3. Bold对象图层:

    • 处理对象的生命周期,包括创建、删除和内存管理。
    • 确保应用程序和数据库之间的实时同步。
  4. Bold持久层:

    • 通过将 Bold 业务类映射到数据库表来管理对象持久性。
    • 抽象化数据库交互,因此开发人员无需手动编写 SQL。
  5. Bold表达式语言 (OCL):

    • 一种类似于 SQL 的查询和约束语言,但专为对象模型而设计。
    • 用于表示模型中的规则、查询和计算属性。
  6. Bold用户界面组件:

    • 数据感知型 UI 组件 (如网格和编辑器) 直接绑定到 Bold 对象模型。
    • 在模型更改时提供实时更新。
  7. Bold的订阅系统:

    • 确保 UI 和其他依赖组件在模型数据更改时自动做出反应。

Bold for Delphi 的主要优势

  • 快速开发:通过自动生成类和管理持久性来减少重复编码。
  • 模型驱动方法:确保应用程序的逻辑和设计一致且结构良好。
  • 可扩展性:以最少的工作量支持复杂的对象关系和业务规则。
  • 实时更新:自动同步响应式应用程序的 UI 和数据层。

示例用例

Bold for Delphi 特别适用于:

  • 企业资源规划 (ERP) 系统
  • 客户关系管理 (CRM) 系统
  • 具有复杂域模型和业务规则的应用程序

对于需要高效构建复杂的模型驱动应用程序的 Delphi 开发人员来说,Bold for Delphi 仍然是一个有价值的工具。


QQ在线咨询
热线电话
0531-66900120
售后服务
13287796906
QQ在线咨询
热线电话
0531-66900120
售后服务
13287796906