4

我是这个概念的新手,所以我需要指导在以下情况下最好使用什么。

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

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

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

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

任何帮助表示赞赏

4

2 回答 2

3

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

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

重新获取数据的方式;轮询简单有效;主动推送更难设置,但可能会减少延迟 - 不确定在这里是否值得

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

于 2011-07-02T14:49:56.817 回答
2

尝试云计算并将您的数据存储到云中

好的,在投票后尝试在这里恢复我的积分。

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

如果您经常刷新客户端数据,输出缓存在这里可以提供很大帮助,这几乎可以在没有代码的情况下实现。这比管理更改列表要容易得多。

于 2011-07-02T14:46:45.850 回答