我有一个现有的基于云的解决方案,其中包含一个Web API,用于代理数据从后端SQL数据库到客户端应用程序。这非常标准。我的Web API是使用.NET Core构建的。这很好地运作,并且我利用了已建立的Web API与各种Web客户端一起工作。架构如下:
当前的解决方案需要扩展以支持使用Web API的本机移动客户端应用程序(在这里没有什么异常 - 通常他们会像任何其他客户端一样调用Web API),但是我必须满足这些新客户端应用程序可以在离线情况下使用的要求。这意味着我不能期望在设备上存在数据连接以便在每次需要时调用我的Web API。我需要考虑同步数据,以便在离线时可以发送回服务器。
思考一下,数据将通过以下两种方式之一进行同步:
思考一下,数据将通过以下两种方式之一进行同步:
- 单向同步 - 从服务器到客户端的数据,但不会对此数据进行更改,例如系统查找表。
- 双向同步 - 现有数据将与客户端同步,修改并发送回服务器,或在客户端上创建新数据并发送上去,例如新订单。
新架构如下:
所以,来到我的问题 - 有人知道一个好的设计模式来处理数据同步(单向和双向),或者一个已经内置了同步代码的NuGet包吗?如果可能的话,我想避免重新发明轮子。
注意:仅供信息参考,原生移动应用将使用Visual Studio 2015中的Xamarin构建。