使用Flex,.NET和DBMS寻找更好的端到端通信

时间:2008-09-15 15:56:45

标签: .net flex orm

我们正在审查我们的一些工作实践 - 我们现在正在研究的具体问题是使用基于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>

1 个答案:

答案 0 :(得分:1)

虽然我确信还有其他方法可以解决您的问题,但是您是否有特定原因需要通过网络服务与.net进行通信? 一个非常干净的解决方案是使用WebOrb(http://www.themidnightcoders.com/weborb/dotnet/)之类的东西 他们有社区和商业产品,并且非常优雅地处理您所描述的问题。

-MW