【发布时间】:2009-02-12 00:25:48
【问题描述】:
我的公司正在开发一个应用程序,该应用程序通过 TCP 套接字和 xml 消息从另一家公司接收数据。这被传送到单个网关应用程序,然后将其广播到我们组织中不同机器上同一内部应用程序的多个副本。
WCF 被选为处理内部通信(内部双向)的技术。开发人员考虑了两种方法。
由 每个不同的 WCF 服务 网关收到的消息 应用。网关 应用程序将解析传入的 外部消息并致电 适当的 WCF 服务方法。这 传入的 XML 将被翻译 进入 DataContract DTO 并提供 作为适当 WCF 的参数 方法。
内部应用程序 暴露了一个 WCF 服务 方法“ProcessMessage”,其中 接受 Xml 字符串消息为 争论。内部应用程序将 解析然后反序列化接收到的 xml并进行相应的处理。
首席开发人员认为选项二是更好的选择,因为它“更容易”序列化/反序列化 xml。我认为这个论点没有意义,因为 DataContracts 是由 WCF 序列化和反序列化的,并且通过使用 WCF,我们可以更好地键入我们的数据。在选项 2 中,有人可以调用 WCF 服务并传入任何字符串。我相信选项 1 提供了一个更简洁的界面,并使应用程序更易于维护和使用。
这两个选项在某些时候仍需要对原始 xml 字符串进行解析和验证,因此也可能是一个问题,建议在哪里执行此验证。
我想知道目前传递此类信息的想法是什么,以及人们对这两种选择的看法是什么。
【问题讨论】:
标签: c# xml wcf architecture