单个数据库和许多用户桌面应用程序

时间:2011-07-02 14:39:26

标签: c# database web-services client-server data-synchronization

我是这个概念的新手,所以我需要指导以下场景中最好用的内容。

我必须创建一个包含许多功能的桌面应用程序,例如parts StockEmployees DataCompany Cars Data等。

现在问题是许多用户将使用该应用程序,并且位于不同城市的办公室位于安装此应用程序的位置。

我想要一个方案,如果一个人将任何数据上传到数据库,其他人得到反映,其他人立即得到更新。例如,如果添加更多汽车,每个人都使用他们的汽车列表更新。

我有意使用webservices,数据应存储在网站数据库的某个位置,以便每个人的应用程序每隔20秒左右刷新一次列表。

感谢任何帮助

2 个答案:

答案 0 :(得分:3)

您不会经常重新加载所有数据;这里有几种常见的方法:

  • 保留更改列表;如果添加新数据,则添加主数据记录,即可写出发生更改的事实(实际上是“事件”列表)。然后,您可以通过询问(x)
  • 之后的所有事件,定期查询更改日志以获取和添加/更新/删除
  • 如果基础设施允许,某种发布/子框架 - 实际上是相同的方法,但通常使用中间件进行更改,而不是主数据库

了解如何获取数据;民意调查简单有效;主动推送更难以设置,但可能会减少延迟 - 不确定它是否值得这里

另一种方法是将其设计为Web应用程序 - 然后所有数据都存储在服务器场中,并且很容易立即更新。您的“桌面”应用可以是使用ajax的网页

答案 1 :(得分:2)

尝试云计算并将数据存储到云端

确定尝试在downvote之后恢复我的积分。

云(特别是Windows Azure)非常适合这个项目。 Web服务也会有所帮助,因为它们可以轻松扩展到许多Web服务器(Azure中的实例说话)。让许多桌面客户端直接与数据库通信并不是一个好主意,并且通常会导致可伸缩性问题。

如果您经常刷新客户端数据,那么输出缓存在这里可以提供很多帮助,这几乎不需要代码即可实现。这比管理更改列表更容易。