首页 > 解决方案 > 同一设备中的两个应用程序的通信

问题描述

有 2 个应用程序需要相互通信。它们都在同一台PC上运行。

  1. 主要应用程序 (C#)

  2. 辅助应用程序 (C#) -> 从主应用程序启动

助手应用程序将修改主应用程序使用/包含的一些数据。辅助应用程序可以是微服务吗?(不熟悉微服务,但我在网上查的时候看到过)

我找到了一个有用的教程,并且能够创建 WCF 双工绑定。现在 Main Application 和 Helper Application 可以通信了。我只是想知道这是否是一个好的解决方案(或者微服务更好??)

标签: restwcfsoapwsdlmicroservices

解决方案


辅助应用程序可以是微服务吗?(不熟悉微服务...

当然。“微服务”只是描述基于分布式组件的网络计算的最新术语。它可以追溯到(可能更进一步)分布式 COM (DCOM)Corba的时代;COM+,最后是面向服务的架构(SOA)。WCF 使用 SOA 作为最佳实践。在实践中,SOA 和微服务之间唯一真正的区别是后者倾向于采用 HTTP-REST-JSON 作为传输/API/有效负载,而 SOA 生成是传输/有效负载中立的,但通常使用 SOAP。

我找到了一个有用的教程,并且能够创建 WCF 双工绑定。现在 Main Application 和 Helper Application 可以通信了。我只是想知道这是否是一个好的解决方案(或者微服务更好??)

从技术上讲,您已经在使用微服务/SOA。

我只是想知道这是否是一个好的解决方案

没有。SOA/微服务在同一台机器上的问题是它们非常健谈;开销很大;并且他们的消息有效负载非常冗长。默认情况下,SOAP 和 REST 都使用文本消息(分别为 XML 和 JSON)(与二进制相比较大)。

如果客户端和服务器都在同一台机器上,最好只使用直接命名管道并避免 WCF/REST。命名管道下的通信是二进制的,因此非常紧凑;命名管道以内核模式运行,这意味着它非常,并且作为本地通信时的额外奖励,绕过网络层(而不是说 TCP,它甚至可以用于 LOCALHOST)。


推荐阅读