GUI和Windows服务通信

我知道自Vista以来,C#无法直接将UI表单挂钩到Windows服务。 这是在Microsoft网站上说明的。

我在这方面的问题是:“从用户界面到服务的最佳通信方式是什么?”

我听说过远程处理,Web服务和直接TCP。 还有其他方法吗? 他们如何与前面提到的方法进行排名? 他们实施起来有多复杂?

我的应用程序是用于Intranet,而不是Internet。 微软平台将是双方的,因此互操作性不是一个因素,但速度是。 我的意思是我想要在网络上获得最小的数据包。

TIA

如果您要使用.NET进行开发,请使用WCF进行进程间通信。 WCF极大地简化了开发,因为与特定通信机制(例如,套接字,管道等)相关联的复杂性被抽象在统一编程模型之后。 因此,如果您选择使用http,tcp或命名管道作为传输机制并不重要,编程模型是相同的。

我强烈推荐Juval Lowy为WCF所有事情编写WCF服务的书。 您还可以访问他的网站IDesign.net ,获取免费的WCF代码示例。

有关WCF的概述,请在dnrTV上观看此免费video 。 它涵盖了WCF的目的,并通过一些易于理解的示例演示了WCF编程。

如果您尚未创建Windows服务但计划在C#中执行此操作,则可以按照此处的步骤进行操作。

在进程之间进行通信有很多种方式 – 命名管道,邮件槽,内存映射文件,套接字,ActiveX / COM对象,仅举几例。 它归结为您熟悉/熟悉的技术。