c# - 单个数据库和多个用户桌面应用程序

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

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

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

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

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

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

感谢任何帮助

最佳答案

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

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

关于如何获取数据;投票简单有效;主动推送更难设置,但可以减少延迟 - 不确定这里是否值得

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

关于c# - 单个数据库和多个用户桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557651/

相关文章:

java - 使用 JAX-WS 2.0 和 @WebService 为一项服务发布多个端口

c# - System.Threading.Timer 延迟数百毫秒到期

database - "http://"是否应该与 URL 的数据库记录一起存储?

node.js - 在 Mongo GridFS 或 Amazon S3 中存储图像哪个更快?

REST API 与 Web API

javascript - 谷歌地图 API v3; Web 服务请求和使用 for-loop 显示多个位置

c# - 使用 jQuery 的 ajax 将文件发送到 C# 中的 Web 服务 (asmx)

c# - 使用 EPPlus 合并单元格?

C# UWP TextBlock 文本以编程方式更改按钮样式

c# - 如何根据其他两个字段的值从 MSSQL 返回一个字段