Windows Phone:更新后端数据存储(通过Web服务),同时保持UI响应速度

时间:2010-06-06 20:50:56

标签: web-services windows-phone-7

我正在开发一个Windows Phone应用程序,用户可以在其中更新列表。每次更新,删除,添加等都需要存储在Web服务后面的数据库中。除了确保手机上的所有操作最终都在云端,我需要确保应用程序真正响应,并且用户不会感到任何延迟时间。

这里使用的最佳设计是什么?每个复选框都会更改,每个文本框编辑都会触发一个新线程来联系Web服务?本地存储需要更新的事物列表然后经常批量发送到服务器(后退按钮怎么样)?我错过了另一个更简单的实现吗?

提前致谢,

3 个答案:

答案 0 :(得分:2)

对您的Web服务的数据更新将需要一些时间来执行,因此在为用户提供最佳响应方面,您最好的方法是在后台线程上解决这些问题。

如果由于背压而未进行更新(直到您的应用恢复)是您的应用所关注的问题,那么您可以增加发送这些更新的频率。

在每次更改后,本地存储数据都是一个好主意,以确保不会丢失任何内容,因为您不知道您的应用是否会因打电话而中断。

您可以intercept the back button允许您处理通知用户正在处理的待处理更新或请求确认推迟传输(例如,在网络位置不佳的情况下)。您的UI中的可视队列可能有助于指示存储队列中的待处理请求。

您可能需要考虑应用程序的典型使用方案中数据更新的总体频率以及这将利用网络连接的强烈程度。根据这一点,您可能希望平衡更新频率与潜在功耗。

这可以指导您是否从场级别更改中触发更新,在队列不为空时触发计时器,和/或在其他可能性之间操纵不同的数据行。

移动网络通信的一般效率指导是传输更大,频率更低,而不是“繁琐”或频繁的传输模式,但是由您来决定最适合您的应用的是什么。

答案 1 :(得分:1)

您可能希望查看类似于REST或SOAP的内容。

每次更新,删除,添加都会向Web服务发送请求。请求完成后,Web服务会将消息发送回电话应用程序。

由于您希望在电话应用程序上保持这一简单,您将向Web服务发送一个URL,并且Web服务将使用您可以轻松解析的简单消息进行响应。

这样的事情:

http://webservice?action=update&id=10345&data=...

回复:

Update 10345 successful

id号只是一个递增序列,用于标识请求/响应对。

答案 2 :(得分:0)

微软同步框架最近在几周前发布并讨论过DotNetRocks。我必须承认,在我阅读你的评论之前,我没有考虑过这个问题。

我还没有研究同步框架的依赖关系以及因此在wp7平台上运行的能力,但它可能值得一试。

这是框架的link

如果您对某些背景信息感兴趣,请与Lev Novik联系Carl和Richard的show。这是一个非常有趣的节目。