GUI和Windows服务通信

时间:2009-11-20 20:28:35

标签: c# .net user-interface windows-services communication

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

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

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

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

TIA

2 个答案:

答案 0 :(得分:22)

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

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

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

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

答案 1 :(得分:1)

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