我正在尝试制作一个在线应用程序,可以将 Android 设备上运行的 SQLite 数据库与服务器上运行的 SQL 同步。我们有一个在 .NET 和 Android 上运行的企业应用程序;我们需要同步他们的数据以保持一致性。这将是双向同步:发生的任何数据更改(无论是在客户端还是在数据库服务器上)都应该同步。
我发现可以通过多种方法来实现这一点,但对于这种情况,我建议使用 Microsoft Sync Framework,因为它可以自动执行同步过程并且也很方便。我对使用 Sync 框架进行了一些研究,并在 Microsoft 网站上找到了一些示例。但大多数情况下,他们正在执行离线同步:他们基本上是在桌面上执行同步过程,其中源数据库和目标数据库位于同一台计算机上。但对于我的场景来说,情况并非如此。我在客户端计算机上有 SQLite,在服务器上有 SQLite,因此这里似乎需要在线同步过程。
我应该如何实现这个目标?
它们是示例应用程序,因此为了简单起见,它们只是在本地指向源数据库和目标数据库。无法阻止您将数据库连接重新指向远程服务器。
不要单独查看 Sync Framework SDK,而是查看 Sync Framework Toolkit。这是针对非 MS 客户端平台的平台。
Microsoft 同步服务可与 ADO.NET 数据提供程序连接的任何数据源配合使用。您将需要了解如何进行点对点同步。 Microsoft Sync Framework 的规则保存在 SQL Server Compact Edition 数据库中,并且需要驻留在 SQL Server 端,并且很可能您将通过网络连接 (Internet) 执行同步,因此您需要设置一个 Web服务器和 Web 服务,用于从 Android 端激活同步代理。制作代理和同步适配器将是一项相当艰巨的工作。幸运的是,有进取心的开发人员已经完成了这项工作:https://ampliapps.com/sqlite-sync/ 还有其他类似我发布的工具,为了透明起见,我对 Ampliapps 没有兴趣,我只知道他们的产品。