是否有任何Delphi框架/库接近Bold/Eco提供的功能?
不确定Borland/Codegear/Embarcadero过渡期间Bold/Eco发生了什么,但我肯定在更新版本的Delphi中错过了它。有人知道一个接近的框架吗 如果没有,也许你可以建议一个接近的库和组件的组合。似乎是Delphi win32唯一真正的ORM,但它还没有接近 对于UML建模以及Delphi win32(或C#)的建模,我推荐 这两种工具都支持Delphi2010 --jeroen备选方案如下(每种方案都有简短说明) 我只在Delphi中使用过粗体(现在仍然如此),但我认为在功能集中没有任何其他替代方法。我想这是关键,哪些特性对您很重要? 如果你不需要Bold提供的一切,也许你可以选择其中一种 或者,您仍然可以使用粗体,最新版本是,希望Embarcadero最终开放源代码,或者继续开发。是否有任何Delphi框架/库接近Bold/Eco提供的功能?,delphi,domain-driven-design,object-persistence,bold-delphi,Delphi,Domain Driven Design,Object Persistence,Bold Delphi,不确定Borland/Codegear/Embarcadero过渡期间Bold/Eco发生了什么,但我肯定在更新版本的Delphi中错过了它。有人知道一个接近的框架吗 如果没有,也许你可以建议一个接近的库和组件的组合。似乎是Delphi win32唯一真正的ORM,但它还没有接近 对于UML建模以及Delphi win32(或C#)的建模,我推荐 这两种工具都支持Delphi2010 --jeroen备选方案如下(每种方案都有简短说明) 我只在Delphi中使用过粗体(现在仍然如此),但我认为在
用户不断要求使用粗体字,但Embarcadero似乎处理得很好。开始编辑/更新: 自从这个答案发表以来,框架得到了很大的增强,特别是为了提供实现真正的领域驱动设计所需的所有功能:
- ORM的数据库不可知论(不仅是SQLite3,还包括任何数据库,包括MS SQL或Oracle)(即使使用Delphi初学者版)李>
- 基于接口的服务李>
- 非常快的
事件驱动http服务器,在内核模式下运行李>http.sys
- 准备好使用AJAX客户端李>
- 大量的改进和修复李>
- 它现在被称为
这是当今德尔福最大的缺陷之一。对于复杂的项目来说,仅仅拥有一个旧的
TDataset
范例是不够的
在Delphi2010中编写一个简单的活动记录并不困难。但对于复杂的项目,您需要一些带有外部配置文件的数据映射器
我正在为Delphi编写一个简单的Hibernate(DORM又名Delphi对象关系映射器)。如果有人想参与,请在bitTime[dot]向d[dot]teti发送电子邮件
下面是宿舍的单元测试
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和TMS来完成这项工作
这是一个询问我想你的标签错了。很遗憾,你应该把“elphi”改为“delphi”,即使是现在,几年后,我也不认为有什么能接近。(IMHO)顺便说一句,ECO仍然是由CapableObjects开发的,目前处于版本中6@dmauric.mp但是对于Delphi来说不是这样。如果你不想要一个完整的框架,你可以使用:1。对象的基本序列化(使用TReader/TWriter或ObjectBinaryToText/WriteComponent和ObjectTextToBinary/ReadComponent);2.一些直接转换为文本,例如使用我们框架的SQlite3Commons.pas中的WriteObject()ReadObject()属性。有关DDD与Delphi的一般介绍,以及mORMot如何使用所有需要的砖块。BOLD的死是不幸的,我相信它被放弃了,因为ECO取代了它,Delphi.net死后ECO也死了。当你使用Delphi Prism时,ECO可能会成为一种未来的技术。实际上,ECO并没有消亡:它是为C#、Delphi.NET和Delphi Prism开发的。因此,您仍然可以使用它,但只能在.NET项目中使用。()要实现域驱动的设计,您需要的不仅仅是ORM。这是一种SOA/客户机-服务器设计,而不仅仅是一种数据和持久性建模方法。不要在荷兰人身上尝试SOA。这意味着STD(;我不理解在没有SOA的情况下如何实现域驱动的设计架构(这是OP的要点)。)你是对的,Bold是DDD之前的框架,ECO现在是DDD建模的一个参考,两者都不是基于SOA的。在SOA上实现DDD的必要性是一个有争议的问题。今天的DDD项目倾向于包括SOA,因为它确实针对DDD项目的复杂性。ECO是基于一项10年前的ORM技术的,这是一个SOA之前的世界。今天,DDD期望的不仅仅是ORM+a建模师。看。@Arnaud Bouchez他不能在上面添加一个SOA层吗?OP除了一个标记之外没有明确提到DDD,也许他只是没有将SOA与Bold/ECORM结合使用,而只是将DDD的最底层