我知道自Vista以来,C#无法将UI表单直接挂钩到Windows服务。这在微软网站上有说明。
我在这方面的问题是:“从用户界面到服务的最佳沟通方式是什么?”
我听说过远程处理,Web服务和直接TCP。还有其他方法吗?他们如何与前面提到的方法进行排名?他们实施起来有多复杂?
我的应用程序是用于Intranet,而不是Internet。微软平台将是双方的,因此互操作性不是一个因素,但速度是。我的意思是我想要在网络上获得最小的数据包。
TIA
答案 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对象,仅举几例。它归结为您熟悉/熟悉的技术。