不确定在 Borland/Codegear/Embarcadero 过渡期间 Bold/Eco 发生了什么,但我肯定会在较新版本的 Delphi 中错过它。有人知道接近的框架吗?
如果没有,也许您可以建议组合使用接近的库和组件。
不确定在 Borland/Codegear/Embarcadero 过渡期间 Bold/Eco 发生了什么,但我肯定会在较新版本的 Delphi 中错过它。有人知道接近的框架吗?
如果没有,也许您可以建议组合使用接近的库和组件。
hcOPF似乎是 Delphi win32 唯一真正的 ORM,但它还没有接近。
对于 UML 建模等 Delphi win32(或 C#),我推荐Model Maker。
这两个工具都支持 Delphi 2010。
——杰伦
替代方案是Delphi win32 的 OPF 列表(每个都有简短描述)。
我只在 Delphi 中使用过 Bold(现在仍然使用),但我认为在功能集中没有任何替代方案可以接近。我认为这是关键,哪些功能对您很重要?如果您不需要 Bold 提供的所有东西,也许您可以选择其中一种选择。
或者,您仍然可以使用 Bold,最新版本是Bold for Delphi 2006,并希望 Embarcadero 最终开源它,或继续开发。使用 Bold 做某事的用户压力一直存在,但 Embarcadero 似乎可以很好地处理压力。
这是当今德尔福最大的不足之一。对于复杂的项目,只有一个旧的TDataset
范式是不够的。
在Delphi 2010中写一个简单的活动记录并不难。但是对于复杂的项目,您需要一些带有外部配置文件的数据映射器。
我正在为 Delphi(DORM aka Delphi Object Relational Mapper)编写一个简单的 Hibernate。如果有人想参与,请在 bitTime [dot] 发送电子邮件给 d [dot] teti。
例如。以下是 DORM 的单元测试
procedure TTestDORM.TestUpdate;
var
p: TPersona; //TPersona is a PODO "Plain Old Delphi Object" TObject descendat
guid: string;
begin
p := TPersona.Create;
p.Nome := 'Daniele';
p.Cognome := 'Teti';
p.Eta := 30;
p.DataDiNascita := EncodeDate(1979,11,04);
Session.Save(p); //DORM do an INSERT
guid := p.guid;
Session.Commit;
Session.StartTransaction;
p := Session.Load(TypeInfo(TPersona), guid) as TPersona; //DORM do a SELECT
p.Nome := 'Peter';
Session.Save(p); //DORM do an UPDATE
Session.Commit;
CheckEquals(1, Session.Count(TPersona));
p := Session.Load(TypeInfo(TPersona), guid) as TPersona; //DORM do a SELECT
CheckEquals('Peter', p.Nome);
end;
有人感兴趣吗?
我认为您可以使用 TMS Aurelius和 TMS Data Modeler完成这项工作
这是一个有趣的链接
开始编辑/更新:
自发布此答案以来,该框架得到了很大的增强,特别是提供了实现真正的领域驱动设计所需的所有功能:
Interface
基于服务,类似于 WCF;http.sys
的事件驱动 HTTP 服务器,以内核模式运行;具有 Delphi 的所有优点,即小而快的可执行文件,不需要运行时/框架,提供所有源代码(没有黑盒方法),没有特定的操作系统,也没有额外的成本。
请参阅此博客文章,了解mORMot如何可能是第一个提供实现领域驱动设计所需的所有模块的 Delphi 框架。使用比“经典”Java 或 .Net 实现更轻、更快的解决方案。
结束编辑/更新
我开发了一个基于 ORM RESTful JSON 的框架,使用 SQlite3 来实现其数据库持久性。
当然,它不像 Bold 或 OPF 那样完整(没有 UML 或 OCL),但它可以工作,并且在 Delphi 7 到 Delphi 2010 之前已经过测试。它仍然得到维护,并且将永远存在,因为它是免费和开源的。
您拥有有趣的功能,例如集成用户界面生成和 i18n、报告和导出为 PDF、客户端/服务器服务、集成单元测试。它使用 JSON 进行数据传输,以及基于进程内通信、Windows GDI 消息、命名管道或 HTTP/1.1 的 RESTful 架构。因此它可以用于开发 AJAX 应用程序。
该框架与我们的 SynProject 工具完美集成,该工具从源代码创建文档,具有漂亮的图形和完整的文档可追溯性(它已用于满足我们使用此框架编写的医疗软件的 IEC 62304 要求)。因此,您没有 UML,但您手头有可用的文档和图表。
如果您对 ORM 和 Delphi 感兴趣,欢迎您加入开源的冒险之旅! http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework