在同一台计算机上的不同应用程序之间共享数据的最佳做法是什么,并在数据发生更改时通知他们?
我有4个应用程序使用相同的设置项目来更改其设置。当我更改项目中的设置时,其他应用程序必须对此更改执行操作,并且必须知道设置已更改。
我考虑过IPC进行设置更改,然后将更改信息广播给所有用户,但如果这样的库已经存在,那就太好了。
修改
我找到了一个适合我的解决方案。我们决定不花费大量时间在这个功能上,因为更新其他应用程序并不是极端的。
我们像以前一样将设置保存在XML文件中,并在该文件上注册FileSystemWatcher以获取所有更改。因此,如果我更改设置,则所有4个应用程序都会读取设置文件,并确定是否必须采取措施。
答案 0 :(得分:1)
要选择的解决方案取决于不同的参数:
例如:
这些只是许多可用解决方案中的两个示例(共享内存,共享应用程序域等)。
答案 1 :(得分:1)
你所做的事情似乎是明智的。我还有另一种使用 MSMQ 的经验。 您可以创建专用或公共队列,因为您在同一台计算机上拥有所有应用程序,专用队列是可以的,否则,您应该使用公共队列。 那时我选择了 Spring.Net 作为我的框架(对象构建器和依赖注入器)。 Spring.net拥有出色的快速入门,其中一个在应用程序之间使用MSMQ作为沟通桥梁。 如果我是你,我会使用排队方法,因为你可以通知在不同机器上运行的应用程序。
此外, WCF 提供了在底层MSMQ组件上开发分布式服务的便捷方法。
此外,Publish-Subscribe是一种在客户端/服务器中广泛使用的常见设计模式 通讯应用。在 WCF 服务开发中,发布 - 订阅模式将会 在服务应用程序将数据公开给某些组的情况下也有帮助 对服务感兴趣的客户和数据作为推送模型提供给客户 积极(而不是由客户进行投票)
答案 2 :(得分:0)
如何使用内置的依赖项对象? 像:
这些实现非常简单,而且效果很好
答案 3 :(得分:0)
网络套接字怎么样?您可以在不同的端口上创建侦听器和发件人