大型项目中 WinForms 应用之间的通信

本文关键字:通信 之间 应用 WinForms 大型项目 | 更新日期: 2023-09-27 18:30:17

我正在做一个大型项目(团队分开工作),现在大多数应用程序都完成了,我们需要将所有内容集成在一起。许多应用程序/表单需要向其他应用程序/表单传达信息或向他人索取信息;我想知道是否有标准的方法可以做到这一点。我们计划这样做的方式是使用共享文件(例如,一个应用程序将信息写入文件,另一个应用程序读取它)。有什么建议吗?

大型项目中 WinForms 应用之间的通信

是的,正如@Uwe Keim在评论中所说,您绝对应该对所有内容使用数据库。但是,SO 答案不是开始教您有关关系数据库以及如何从 C# 应用程序中正确使用它们的地方。你应该告诉管理团队的人这是要走的路,并让他们弄清楚雇佣谁来解决这个问题。

关于您的问题,我认为使用文件共享解决方案有一个明显的缺点,即由于 IO 操作而导致您的操作延迟。

此外,还有其他选择,请参阅下文:

若要完全实现您的要求,应将应用程序之间的通信与应用程序内部窗体之间的通信分开。

若要实现应用程序之间的通信,我建议您使用 WCF 的订阅者/发布者模式。实现非常简单。你可以谷歌一下。这里有一个例子。通过这样做,您可以准确控制何时发生某些事情,并且其他应用程序应该按照您的预期重新行动。

若要在应用程序中实现窗体之间的通信,最好使用 Pub/Sub 模式创建一个事件聚合器,然后将其注入到应用程序中。您可以查看它在 SCSF 中的实现方式。

另一种解决方案是实现消息协议以使应用程序相互通信。为了避免瓶颈,message queue服务可以管理消息交换。

引用:

  • 维基百科
  • MSDN