在 C# 程序中使用 Protobuf 与 JSON 而不是 XML?



在我的公司,我们有一个程序,它从设备读取并将数据写入XML文件中,这些文件使用XSLT文件设置样式并呈现给最终用户。

一切都很好,直到读取的数据大小变大,目前我们甚至计划拥有更多的数据,XML不足以处理所有这些数据。

现在我们应该采用ProtobufJSON而不是XML来存储从设备读取的数据以及存储要写入设备的配置文件。Protobuf对我们的优势是:

1 - 比JSON
更快 2 - 更小的尺寸

然而,提出了一些担忧,我们正在寻找解决方案:

1 - Protobuf文件不像XMLJSON那样容易编辑 以二进制格式存储,它不是人类可读
的 2 - 如果 由于任何原因更新了正在读取的数据的结构(添加 例如更多字段(这会影响向后兼容性吗 读取旧文件
3 - 有没有办法Xslt Protobuf
文件样式,例如XML

  1. 事实上,你不会想手动编辑它们;不过,通过代码进行脚本编辑应该没问题。
  2. 添加字段是完全向后兼容的。删除字段也是如此。该协议在设计时考虑了版本控制。你不能做的是改变现有字段的存储方式 - 有些类型更改很好,有些会立即中断,有些会静默中断(例如,无符号到签名(
  3. 不是直接的;任何常见的UI/数据绑定API都应该可以工作

最新更新