我是这个概念的新手,所以我需要指导以了解在以下情况下最好使用什么。
我必须制作一个包含许多功能的桌面应用程序,例如 parts Stock
、Employees Data
、Company Cars Data
等等。
现在的问题是许多用户会使用该应用程序,而办公室位于安装该应用程序的不同城市。
我想要一个方案,如果一个人将任何数据上传到数据库,其他人会得到它的反射(reflect),其他人会立即得到更新。例如,如果添加了更多的汽车,每个使用的人都会更新他们的汽车列表。
我有使用 webservices
的想法,数据应该存储在网站数据库的某个地方,这样每个人的应用程序每隔 20 秒左右刷新一次列表。
感谢任何帮助
最佳答案
您不会经常重新加载所有数据;这里有几种常见的方法:
- 保留一份更改的列表;如果您添加新数据,您将添加主数据记录并且您写下发生更改的事实(本质上是一个“事件”列表)。然后您可以定期查询更改日志以获取和添加/更新/删除,只需询问 (x) 之后的所有事件
- 如果基础架构允许,某种发布/订阅框架 - 实际上是相同的方法,但通常使用中间件进行更改,而不是主数据库
关于如何获取数据;投票简单有效;主动推送更难设置,但可以减少延迟 - 不确定这里是否值得
不过,另一种方法是将其设计为 Web 应用程序 - 然后您的所有数据都位于服务器场中,并且很容易立即更新。您的“桌面”应用程序可以是使用 ajax 的网页
关于c# - 单个数据库和多个用户桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557651/