我知道自 Vista 以来,C# 无法将 UI 窗体直接挂接到 Windows 服务。这在 Microsoft 网站上有说明。
我在这方面的问题是:“从 UI 到服务的最佳通信模式是什么?”
我听说过 Remoting、Web 服务和直接 TCP。还有其他方法吗?它们与前面提到的方法相比排名如何?它们的实现有多复杂?
我的应用程序是供 Intranet 使用,而不是 Internet。双方都有微软平台,因此互操作性不是一个因素,但速度才是。我的意思是我想通过网络上尽可能小的数据包。
TIA
最佳答案
如果您要使用 .NET 进行开发,请使用 WCF用于您的进程间通信。 WCF 极大地简化了开发,因为与特定通信机制(例如,套接字、管道等)相关的复杂性被抽象为统一的编程模型。因此,无论您选择使用 http、tcp 还是命名管道作为传输机制,编程模型都是相同的。
我强烈推荐 Juval Lowy 的书 Programming WCF Services对于所有 WCF。您也可以访问他的网站,IDesign.net , 免费的 WCF 代码示例。
有关 WCF 的概述,请观看此免费 video在 dnrTV。它涵盖了 WCF 的用途,并通过一些易于理解的示例演示了 WCF 编程。
如果您尚未创建 Windows 服务但计划在 C# 中创建,您可以按照分步操作 here .
关于c# - GUI 和 Windows 服务通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773046/