database - .NET CF 移动设备应用程序 - 处理潜在离线的最佳方法?

标签 database web-services windows-mobile compact-framework offline

我正在使用 VB.NET(紧凑型框架)构建移动应用程序,我想知道处理设备上潜在离线交互的最佳方法是什么。基本上,这些设备具有蜂窝网络和 802.11,但可能仍处于离线状态(接收信号较差等)。司机会在箱子离开他的卡车时扫描箱子,我想更新新位置——如果有网络信号就立即更新,或者如果它离线并稍后处理则排队。不过,这让我开始思考如何处理一般的离线情况。

  • 我是否将尽可能多的数据缓存到设备中,以便在设备离线时使用它 - 本质上,每台设备上都会有(相关)生产数据的副本?还是在离线时禁用某些功能更好,以避免以后同步的头痛?我知道这是一个非常具体的问题,取决于我的应用程序,但我很想看看其他人是否采用了这条路线。
  • 我是否构建应用程序本身以使其始终处于离线状态,将所有内容提交到本地类拥有的各种本地队列(实质上抽象出在线/离线事物),然后让类将事物提交给服务器,因为它可以?数据查找如何 - 如何以“半实时”方式处理这些问题?
  • 或者我是否应该让应用程序尝试直接、实时地向服务器提交请求,并在请求失败时进行处理?我可以看到让用户等待超时的潜在问题,但这是最可靠的方法吗?

我不是在寻找特定的解决方案,而只是在寻找开发人员如何以最流畅的用户体验实现这一目标的故事,并提供指向操作方法或此处需要考虑的内容或类似内容的链接。感谢您对此的指点!

最佳答案

我们无法给您一个确定的答案,因为没有适合所有使用场景的“正确”答案。例如,如果您在后端使用 SQL Server 而在本地使用 SQL CE,您总是可以设置合并复制并让数据引擎为您处理所有这些。那很干净。使用离线应用程序 block 可能会解决它。使用存储转发可能是一种选择。

您可以在本地存储,然后通过直接连接滚动您自己的同步,当检测到网络时使用 WCF 服务的 Web 服务。您可以使用 MSMQ 进行传送。

您要考虑的不是什么是“正确”的方式,而是您的实现将如何影响应用程序的可用性。如果由于缺乏连接而禁用功能,该应用程序是否仍然可用?如果您有过时的数据,这是一个问题吗?当您拥有 GSM/GPRS(通常不是免费的)时,可能需要传输一些关键数据,而当您拥有 802.11 时,可以完成更多工作。也许您可以运行一整天,早上拉下查找表并只上传交易,设备跟踪它所做的更改。

基本上,这实际上取决于它的使用方式、数据的性质、现场设备之间数据交易的重要性、数据延迟的影响,以及可能我暂时无法想到的其他因素。

因此,第一步是确定应用程序需要如何使用,然后确定基础设施和架构以提供所需的连接和数据访问。

关于database - .NET CF 移动设备应用程序 - 处理潜在离线的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224496/

相关文章:

asp.net - AJAX Web 服务 - Web 或商务层的扩展?

java - 使用多态 JAX-WS web 服务参数

c# - 如何在 C# 中公开 WCF Web 服务调用响应 header

c - 如何在 C/C++ 中格式化带有千位分隔符的数字

c++ - 适用于 Visual Studio 2008 的 Windows CE SDK

windows-phone-7 - 如何删除 IE 移动浏览器的点击通话链接

php - 检查具有多个输入的数据库表

mongodb - 读取配置文件时出错。数据库

mysql - 尝试从同一个表中获取匹配和不匹配的值

java - java中数据库中的语句