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

时间:2020-03-05 18:53:48  来源:igfitidea点击:

我们正在审查我们的一些实践做法,而现在正在查看的特定内容是与基于Flex的客户端和.NET Web服务进行Comms的最佳方法。

我们的典型方法是首先根据需求对交互进行建模,模拟一些XML消息并进行合理性检查,然后将它们转换为XSD,最后在要与XML串行化或者从XML串行化的每一端构建类。

直到我们进入数据库,然后连接表之类的东西开始对我们简化客户端的所有工作进行处理之后,这一切都可以正常进行。

我们已经尝试使用LINQ to SQL和其他OR映射器解决此问题,但是如果不引入更严重的问题,它们中的任何一个都无法真正解决问题。

因此,问题实际上是:如果不将RDBMS视为简单的对象存储,是否有更好的方法来处理复杂的数据需求而又无需编写大量的转换代码?

我想寻找的魔术子弹知道了Join表是什么以及如何处理它,并且仍然允许我为Flex生成"不错的"序列化XML并保留强大的.NET输入。

如果可以分析每种方法所需的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>

解决方案

回答

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

-兆瓦