【发布时间】:2018-12-21 02:45:51
【问题描述】:
您好。
我正在开发一个项目,该项目将使用位于服务器上的 REST API,例如 www.this-server.com,并且将有一个使用 C# 的 Windows 窗体应用程序,我们将此应用程序称为 X。
此 X 将安装在全球不同位置的多台机器上,它们将使用该应用程序。假设有 90 个站点或机器安装了 X,但互联网仅连接到其中的 85 个站点。
我想要的是剩下的 5 个站不应该停止工作,我的意思是 CRUD 操作在应用程序 X 的本地数据库中离线进行。
一旦有可用网络,其余 5 个站点应将其更改同步到 www.this-server.com 上的主 API,并同时获取服务器发生的任何更改。
我知道它需要这样的东西,所谓的智能客户端:https://www.codeproject.com/Articles/1134703/Net-application-that-works-online-and-offline-Sma
但我遇到的问题是,假设 API 中的几个表中有一个自动增量字段,这些字段将如何生成并且会有任何冲突。
类似这样的东西:https://dba.stackexchange.com/questions/104700/sync-many-client-database-to-one-central-database
我的意思是这件事甚至是可能的,如果应用程序 X 有单个实例同时运行,这可能是可能的,但在我的例子中,有 90 个 API 同时使用。
我们将不胜感激任何帮助、教导和建议。 问候 贾扬特
PS:我是一个新手开发者,还在学习,所以有很多东西要看,不要对我生气:-D。
【问题讨论】:
-
这写的太宽泛了。只需搜索离线应用同步模式。如果您担心 ID,则在离线客户端上使用虚拟 ID,直到数据发送到服务器并替换为真实 ID。
标签: c# api asynchronous offlineapps shared-data