【发布时间】:2010-10-08 02:15:26
【问题描述】:
我们正在构建一个新的视觉检测系统应用程序。出于多种原因,实际的检查系统需要使用 c++。对于该系统,我们将使用 Boost 和 Qt。
对于我们的 UI,我们目前正在考虑将 WPF/C# 用于 UI 和基于 SQL 的报告。复杂的因素是 UI 必须在与 c++ 检查系统相同的机器上本地运行,或者如果检查系统没有监视器或键盘,则在另一个机器上远程运行。
我们关心的是在两个系统之间传输数据的最快方式是什么?我们目前正在研究使用 Google 协议缓冲区进行序列化的基于套接字的系统。协议缓冲区将为 c++ 和 c#(jskeet/dotnet-protobufs) 生成代码。
有人有什么建议/经验吗?
【问题讨论】:
-
TCP 和 protobuf 听起来不错。您有具体的顾虑或问题吗?
-
protobuf-net 似乎是 .NET 的首选 protobuf 实现。
-
这是一个我没有太多经验的领域。我想知道是否有更好的选择。
-
这很大程度上取决于您需要的交互方式。您的问题并不能说明您想在两个系统之间进行通信的内容/方式。您的应用程序可能会受益于作为基础的消息队列基础设施;如果您遵循 RESTful 方法,则可以更轻松地做出架构决策。这真的取决于你想做什么。如果您只需要原始性能,您可以根据套接字和 protobuf 发明自己的协议,它会起作用。
-
通信单元的频率/数量/大型,可靠性/吞吐量/延迟保证,授权/认证/保密要求,面向消息/服务/资源的架构等。
标签: c# c++ wpf qt networking