移动应用程序和 Web 服务数据传输(WCF 和 JSON)

Posted

技术标签:

【中文标题】移动应用程序和 Web 服务数据传输(WCF 和 JSON)【英文标题】:Mobile applications and web service data transfers (WCF and JSON) 【发布时间】:2011-10-10 12:37:11 【问题描述】:

我正在寻找一些关于在移动设备之间传输数据的最佳实践概念(目前是 android,但概念几乎也适用于其他设备)。我目前有一个 WCF 服务设置了一个有效的 JSON 端点。我开始使用适当的 WebGet/Invokes 等修改现有的服务方法,以使其成为 RESTful。该服务实现了请求/响应模式,因此客户端和服务之间的所有通信都包装在一个复杂的 MessageRequest 和 MessageResponse 对象中。

让移动应用程序成功利用这种模式的最佳方式是什么?我只能想出两个解决方案,每个都有自己的优缺点:

    在客户端项目中创建所有数据传输对象,然后创建一个 JSON/DTO 映射器(GSON 在这里可能工作得很好)。使用客户端对象来处理所有客户端数据管理,直到需要服务器请求,转到 DTO-to-JSON,并将请求发送到服务器。让我印象深刻的好处是它使客户端数据管理更容易,因为它与服务域平行。不利的一面是,如果对象变得越复杂,它们就有可能分解。 忽略 DTO 客户端,直接从 JSON 执行所有操作。这里的好处是它消除了与较大对象和所需映射相关的开销。这里的缺点是这让我觉得它非常脆弱 - 对返回对象的任何更改都需要在代码中深入处理,而不仅仅是对客户端 DTO 和映射器进行更改。

有没有更好的方法来完成这种数据交换?或者这些是处理它的唯一真正方法吗?您如何管理移动应用程序中的数据传输?

【问题讨论】:

【参考方案1】:

我有一个和你非常相似的 WCF 设置,我最终创建了非常轻量级的数据对象客户端。这些管理分离代表自己的JSONObject 并创建他们需要的任何子对象,但除此之外,还有一些简单的类,主要用于将数据组合在一起并且不包含业务逻辑。我们还不需要做任何客户端缓存,但是这些对象将是放置 SQLite 代码以将它们自己持久化的好地方。

到目前为止,它运行良好,我们甚至能够将客户端 Android 代码移植到另一个运行常规 Java 的项目中,只需包含 org.json

【讨论】:

以上是关于移动应用程序和 Web 服务数据传输(WCF 和 JSON)的主要内容,如果未能解决你的问题,请参考以下文章

从 WCF 过渡 WCF RESTful [重复]

找不到 WCF 数据服务类型

WCF Web API 和 WCF 数据服务之间的区别

web service && WCF 学习总结

WCF入门教程一[什么是WCF]

新电子商务网站的 WCF vs WEB api vs Web 服务 [重复]