SOA 的无状态 ORM
Posted
技术标签:
【中文标题】SOA 的无状态 ORM【英文标题】:Stateless ORM for SOA 【发布时间】:2010-10-29 11:56:41 【问题描述】:我们需要实现一个 .NET WCF 服务,它将成为 SOA 解决方案的一部分,这意味着它的实体将通过基于 Java 和 .NET 的服务以及桌面客户端(尽管它们会可能是 .NET,但没关系)。
为了实现这种灵活性,所有对象都必须是无状态的,因为我们不能传递包含实体实现和更改跟踪逻辑的 .dll(所有对象定义都将由 wsdl 获取)。
将被通信的实体将在一个图中,例如,一些主根,然后它们每个都有一个集合,它有自己的集合,等等......集合的每个部分都可以修改/删除/插入。
我知道我们可以使用 DTO,但这是一种开销(尤其是对象图、循环指针等),我现在想避免使用它。但如果没有其他方法证明是正确的,我们可能不得不走那条路……
我以前用过Entity Framework & LLBLGenPro,但我想听听你的意见。所以,最后:
您对 SOA 环境中的 ORM 有何选择?
谢谢
【问题讨论】:
我不认为“哪个 ORM”会因为环境是 SOA 而改变的基本问题。体面的 ORM 可以很好地处理 SOA。 嗯,它确实 - LLBL 实体要求你有它们的 dll 来反序列化,实体框架实体都继承自 system.data.entity,因此它们不能在 Java 上正常“工作”。当然有解决方法,但这就是我问这个问题的原因 - 也许有些东西不需要解决方法 【参考方案1】:我会为此编写一个OData 服务(事实上,am 为它编写一个 OData 服务)。使用实体框架执行此操作是 very easy,但也有 plenty of other choices。然后您可以从just about anything 使用它。
【讨论】:
以上是关于SOA 的无状态 ORM的主要内容,如果未能解决你的问题,请参考以下文章