c# - 通过网络在应用程序之间进行通信

标签 c# c++ communication communication-protocol

在我们的项目中,我们有许多程序在计算机内部和内部网络上相互通信。为了解决这个问题,我们今天使用 COM/DCOM。 然而,我们认为 DCOM 太复杂了。如何为每个版本的 Windows 配置安全设置更改。

因此,我们正在寻找一种协议(protocol),使我们在不同 Windows 计算机上的不同程序之间能够进行通信,并且没有像 DCOM 那样多的开销。

程序是用C++/MFC和C#编写的

安全性不是那么重要,因为系统运行在一个完全脱离其他网络的小型本地网络上。

最佳答案

如果您需要有保证的消息传递和交易支持 - 最好的选择是使用任何消息传递子系统。如果您完全确定您的所有系统都将在 Windows 机器上运行 - MSMQ 是您的选择。它可以从 Windows 组件设置轻松安装。 如果您希望某些节点在其他操作系统上工作 - 潜伏更多关于 RabbitMQ 的信息。 可以使用多种消息传递子系统,例如 IBM MQ 或 Tibco Messaging。

正如上面提到的 - 我同意 MassTransit 可能是与 MSMQ 一起工作的一个很好的选择,但需要遵循一些初步的学习和架构方法。开源且免费使用。 NServiceBus 是同样的野兽,可能更精致,但它不是免费使用的。对我来说非常昂贵。

如果您决定使用 RabbitMQ,请查看 EasyNetQ 包装器。

但是,如果您不需要保证应用程序之间的交付——为什么不通过 MVC4 使用 REST 服务。它的设置速度要快得多,您将能够轻松支持其他平台客户端,例如 iOS 或 Android 设备。

关于c# - 通过网络在应用程序之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607601/

相关文章:

c# - 即使 keypreview = true,按钮也会阻止 KeyDown 事件触发

c# - RibbonControl 正在拉伸(stretch)图像

c# - 项目类型不允许添加新的 "Web User Control"

c++ - 提供可变参数模板 : candidate expects 1 argument, 0(推导错误)

c# - 将数据从 ASP.NET 页面传递到动态加载的 ASCX 用户控件

Angular 5 - 组件和服务之间的通信

c# - asp.net datagrid findcontrol 为文本框返回 null

c++ - 为什么此算法的这个 "improvement"不起作用?

c++ - "each CPU instruction can manipulate 32 bits of data"是什么意思?

silverlight - Socket.SendAsync 线程安全有效吗?