在一个非常大的项目中,可用于进程间通信的最佳和最简单的方法是什么?
我的要求是在普通的 Windows 窗体应用程序和 Windows 服务之间进行通信。
易于维护和实施的方法是首选。
谢谢
从标签中我了解到我们正在谈论.NET。也许您应该尝试 Microsoft WCF。它统一了这个问题,从实际代码中抽象出特定的进程间(服务间)通信技术。因此,通常您将设计和编写您的进程将用来相互通信的接口,然后您将在 XML 配置文件中配置特定的通信技术。也就是说,您在“进程谈论什么”和“如何具体实施这种通信”之间有相当明确的区别。
WCF 支持 SOAP、TCP\IP 通信、MSMQ 等,您的进程可以是 IIS 托管的 Web 服务、通常的 Windows 服务、控制台应用程序等——所有这些都在统一的框架下。我认为,这正是您正在寻找的。
这真的取决于项目,因为有很多方法。
这可能取决于项目的不同部分在哪里运行(它们可以在不同的服务器上运行,或者完全在不同的技术堆栈上运行。)。
最常见的方法可能是 Web 服务。尽管这些都带来了开销,因此可能值得通过 DLL 研究一个简单的接口 API。
无论您做什么,都应该仔细考虑和设计它,考虑安全性和性能,以及将来如何扩展或修改它。
不一定是最好的或最简单的......
在 .NET 世界中尝试 MSMQ 或 IBM MQ 消息队列中间件。
如果通信主要是单向通信,则考虑使用 WCF 服务,如果您让 Visual Studio 中的代码生成器为您完成大部分工作,这既好又容易。