用于与遗留系统通信的 Protobuf

Protobuf for communicating with legacy systems

我期待将 protobuf-net 与命名管道结合使用,以便与遗留系统(WinXP 32 位、NetFramework 4.0.3)进行通信。 令人高兴的是,至少有 2.4.6 版可用于 Net Framework 4.0。 最新版本的readme.md表示可以针对net20 / net35,但不支持。此外,信息页面指出需要 Net 4.6.1+ 并且在项目配置中,我们发现至少必须针对 netstandard2.0。

是否有机会(无痛)编译更高版本的 protobuf-net 对于 Net Framework 4.0? 似乎必须替换“System.Buffers”和“System.Memory”, 这可能需要大量工作。

此外,从源代码中我们可以看出,将 protobuf-net 与命名管道一起使用仍被认为是“实验性的”。 能否说明这离稳定还有多远? 我想在生产环境中使用 protobuf-net,如 IPC using Protobuf 所示 对我来说是非常优雅的解决方案。

protobuf-net v2 包括 down-level net20 和 net35 目标; protobuf-net v3 没有。对于 为什么 please see this blog post 的 in-depth 讨论。 v3 可以假设针对 v2 构建吗?可能,通过适当的努力。不过,博客 post 对此进行了更详细的讨论。

The readme.md in the latest version states that net20 / net35 can be targeted

请你提供一个 link 给我,这样我就可以澄清一下。我已经查过了,我看不到那个声明。

Furthermore from the source-code we can see that using protobuf-net with named pipes is still considered to be "experimental". Can there any statements be made how far this is from stable ?

实验性命名管道基本 RPC 层完全是:实验性的;它不被认为是稳定的,我可能会放弃它以支持 gRPC(另请参阅:protobuf-net.grpc),除非我有充分的理由需要付出更多努力。特别是,Microsoft 正在投入一些努力使 in-process gRPC 工作,因此将这些努力结合起来可能更务实。然而!这可能仅限于 .NET 5(或可能更高版本),如果您的目标是 .NET Framework 2.0,这对您没有帮助。

最后:我不想告诉你这个,但是:旧版本的 .NET Framework 早已停用。大多数图书馆作者 - 尤其是 免费图书馆的作者 - 不太可能投入适当支持所需的大量努力。