同步SQL Server Compact数据库以使用C#中的联机数据库?

时间:2014-12-31 12:11:42

标签: c# asp.net database web-services sql-server-ce

我正在创建一个桌面应用程序,用户希望在我要创建的网站上在线查看应用程序中的信息。

问题是我的应用程序使用SQL Server Compact作为数据库。我真的需要有关如何创建可以从本地桌面应用程序获取数据的Web服务的帮助。用户(也就是应用程序的管理员)也应该能够从可能影响应用程序的网站进行更改。他们还希望从网站上的应用程序中查看库存,联系方式等信息。

我创建了桌面应用程序,但不知道如何创建Web应用程序/服务或将本地数据库同步到在线应用程序。

1 个答案:

答案 0 :(得分:1)

首先,真的是否需要拥有本地数据库并使其与在线数据库保持同步?据我所知,你将开发它们,这样你就可以掌控了。因此,我在这里看到的第一个逻辑步骤是创建REST API [1,2,3]并提供端点,以便从在线数据库读取和写入。例如,如果您想构建一个简单的API来注册和登录用户,它应该具有这些端点(操作):

  • POST / users / register
  • GET / users /:id
  • PUT / users /:id
  • POST / users / login
  • DELETE / users / logout

因此,您可以注册新用户,查看其个人资料中的数据并能够更新,当然还有登录注销

现在,您的在线桌面应用程序都可以成为API的客户端。您可以在其中一个产品中添加,编辑和删除产品,更改也会显示在另一个产品中。当然我在这里做了一些假设(不需要实时更新,桌面客户端可以有始终在连接,响应有效负载的大小不是很大等等。)

如果您还需要本地数据库,则可以在要同步的表中添加 updatedAt 字段,以便 desktop 应用程序可以查询API仅获取在给定日期之后生成的更改,减少API响应的有效负载(以及使用的带宽,如果这很重要)。无论如何,我认为这一步是对真正问题的优化,因此在仔细考虑API和客户之后,您可能只考虑所有这些(拥有本地数据库,跟踪更改并同步......)第一。回答以下问题可能有助于您做出有意识的决定:

  • 您会同时拥有多少用户?
  • 系统中有多少项(数据库记录)?

如果答案少于100个用户和数千条记录,您可能不必担心同步。但是,我们只能帮助您了解有关系统要求的更多信息。

参考文献:

  1. http://www.restapitutorial.com/
  2. https://github.com/interagent/http-api-design
  3. http://mattgemmell.com/api-design/
  4. 祝你好运,新年快乐, 若昂