C# 什么';在不使用web服务的情况下,在同一台计算机上运行的两个或多个.Net应用程序之间进行通信的正确方式是什么?

C# 什么';在不使用web服务的情况下,在同一台计算机上运行的两个或多个.Net应用程序之间进行通信的正确方式是什么?,c#,interop,C#,Interop,如果我的应用程序在同一台计算机上运行,甚至在同一局域网中的不同计算机上运行,并且需要密集而快速的通信,那么使用文本编码的web服务和HTTP似乎不合逻辑。我可能会使用IP/TCP/UDP套接字并发明自己的协议,但我相信.Net应用程序有一种标准的方式来发送/接收对象实例(甚至通过引用共享对象?)。你能告诉我那是什么标准方式吗?我只对.Net Framework 4应用程序感兴趣,不需要支持传统框架。可能是WCF over NetTcp或NetNamedPipe绑定,或者是.Net远程处理。可能是

如果我的应用程序在同一台计算机上运行,甚至在同一局域网中的不同计算机上运行,并且需要密集而快速的通信,那么使用文本编码的web服务和HTTP似乎不合逻辑。我可能会使用IP/TCP/UDP套接字并发明自己的协议,但我相信.Net应用程序有一种标准的方式来发送/接收对象实例(甚至通过引用共享对象?)。你能告诉我那是什么标准方式吗?我只对.Net Framework 4应用程序感兴趣,不需要支持传统框架。

可能是WCF over NetTcp或NetNamedPipe绑定,或者是.Net远程处理。

可能是WCF over NetTcp或NetNamedPipe绑定,或者是.Net远程处理。

您需要使用Windows Communication Foundation:

另一个链接

Microsoft已选择此作为.net应用程序的首选通信方式。它取代了远程处理和Web服务


最棒的是,您只需少量工作就可以切换到不同的协议,因此,如果一个协议不适合您,您可以更改配置以尝试另一个协议。

您需要使用Windows Communication Foundation:

另一个链接

Microsoft已选择此作为.net应用程序的首选通信方式。它取代了远程处理和Web服务


它的好处是,您只需少量工作就可以切换到不同的协议,因此如果一个协议不适合您,您可以改变配置来尝试另一个协议。

如果您想共享对象,那么.NET远程处理可能是实现这一点的一个好方法。

如果您想共享对象,那么.NET远程处理可能是实现这一点的一个好方法。

一句话:远程处理

如果性能仍然是一个问题,TCP(甚至UDP,取决于需求)仍然是您的朋友。

一句话:远程处理


如果性能仍然是一个问题,TCP(甚至UDP,取决于需求)仍然是您的朋友。

.Net 4为您提供了可以通过分页文件返回并按名称在应用程序之间共享的功能。

.Net 4为您提供了可以通过分页文件返回并按名称在应用程序之间共享的功能。

作为未来的证明,我会使用,它允许a)C#应用程序之间的本地通信,b)不同语言的应用程序之间的本地通信,以及C)网络通信。

为了证明未来,我会使用,它允许a)C#应用程序之间的本地通信,b)不同语言应用程序之间的本地通信和c)网络通信。

Man。。。闪回到.NETIII:)人。。。闪回到.NET III:)虽然我同意这是一个有效的解决方案,但WCF=craploads的代码做最简单的事情,配置是一个噩梦。@jvenema我同意其中涉及一些设置,但一旦你启动并运行它,它比以前的替代方案有巨大的优势。@jvenema-这在.NET 4.0之前是正确的。在.NET4.0中,他们通过为许多事情提供默认设置,大大简化了配置要求;我想我会回头再看一看。虽然我同意这是一个有效的解决方案,但WCF=craploads的代码做最简单的事情,配置是一个噩梦。@jvenema我同意有一些设置涉及,但一旦你让它启动并运行,与以前的替代方案相比有巨大的优势。@jvenema-在.NET4.0之前是这样的。在.NET4.0中,他们通过为许多事情提供默认设置,大大简化了配置要求;我想我会回头再看一看。远程处理被认为是一种过时的技术,如果使用适当的配置,使用WCF可以实现远程处理性能。远程处理被认为是一种过时的技术,如果使用适当的配置,可以使用WCF实现远程处理性能。