我们正在审查我们的一些工作实践 - 我们现在正在研究的具体问题是使用基于Flex的客户端和.NET Web服务进行通信的最佳方法。
我们的典型方法是首先根据需求对交互进行建模,模拟一些XML消息并对其进行健全性检查,将其转换为XSD,最后在每个与XML序列化的数据库上构建类。
这可以正常工作,直到我们点击数据库然后像Join Tables这样的东西开始破坏我们所做的所有工作,简化了客户端。
我们尝试使用LINQ to SQL和其他OR映射器来解决这个问题,但是如果不引入更严重的问题,它们都无法解决问题。
所以,真正的问题是:如果不治疗RDBMS作为简单的对象存储,有没有更好的方式来处理复杂的数据要求,而无需编写大量的转换代码量
?我认为我正在寻找的神奇子弹知道什么是Join表以及如何处理它,并且仍然允许我为Flex生成'漂亮'的序列化XML并保留强大的.NET Typing。
奖励点是否可以分析每种方法所需的SQL,生成存储过程并使用它们。但那可能要求太多了:)
请注意“加入表格”:
我们对此的定义是,您拥有一个具有两个或更多外键的表,因为它是自己的主键。
例如:
Photos (PK PhotoID) <- PhotoTags (PK FK PhotoID, PK FK TagID) -> Tags (PK TagID)
当Flex客户端获取Photo对象时,它也可能获得所有标记的列表。 所以,这可能是这样的:
<photo id="3"> <tags> <tag name="park" /> <tag name="sydney" /> </tags> </photo>
相反,我见过的OR工具给了我们:
<photo id="3"> <phototags> <phototag> <tag name="park" /> </phototag> <phototag> <tag name="sydney" /> </phototag> </phototags> </photo>
答案 0 :(得分:1)
虽然我确信还有其他方法可以解决您的问题,但是您是否有特定原因需要通过网络服务与.net进行通信? 一个非常干净的解决方案是使用WebOrb(http://www.themidnightcoders.com/weborb/dotnet/)之类的东西 他们有社区和商业产品,并且非常优雅地处理您所描述的问题。
-MW