在过去的.NET框架项目中,我们的主要应用程序作为Windows运行,我们使用WCF NetNamedPipeBinding与WPF前端应用程序进行通信。由于WCF不会是.NET核心的一部分,我应该如何处理进程间的通信?新应用程序(辅助服务)需要处理典型的RPC并将数据推送到另一个进程。
我正在考虑以下几点:
任何见解或替代将不胜感激!
发布于 2020-04-20 10:58:53
最近我会考虑三种低努力的选择:
MessagePipe (新)
MessagePipe是一种适用于.NET和统一的高性能内存/分布式消息传递管道,它支持所有的Pub/Sub使用、CQRS的中介模式、棱镜的EventAggregator (VM解耦)、IPC(进程间通信)-RPC等。
- Dependency-injection first
- Filter pipeline
- better event
- sync/async
- keyed/keyless
- buffered/bufferless
- singleton/scoped
- broadcast/response(+many)
- in-memory/interprocess/distributed
MessagePipe比标准的C#事件快,比棱镜的EventAggregator快78倍。“
还没有尝试过,但这位作者是.NET的传奇人物。
gRPC:
对于较大的项目,您可以使用可视化ReCode自动将项目从WCF转换为gRPC。我在这个项目上的经验有限,但看起来很有希望,gRPC绝对是未来……
ServiceWire:
ServiceWire是一个非常轻量级的IPC/RPC库。跨平台,支持TCP/IP &命名管道通道。疯狂的快速和易于使用-简单地添加可序列化的所有类,需要通过电线发送。我真的很喜欢这个框架。
唯一的缺点是:
https://stackoverflow.com/questions/58549763
复制相似问题