在C#程序中使用Protobuf vs JSON而不是XML?
在我的公司,我们有一个程序,可以从设备读取数据,然后将数据写入在C#程序中使用Protobuf vs JSON而不是XML?,c#,json,xml,serialization,protobuf-net,C#,Json,Xml,Serialization,Protobuf Net,在我的公司,我们有一个程序,可以从设备读取数据,然后将数据写入XML文件,这些文件采用XSLT文件样式,并呈现给最终用户。 在读取的数据变得更大之前,一切都很好,目前我们甚至计划拥有更多的数据,XML将不足以处理所有这些数据。 现在我们应该采用Protobuf或JSON而不是XML来存储从设备读取的数据,并存储要写入设备的配置文件。Protobuf对我们的好处是: 1-比JSON快 2-更小的尺寸 然而,有人提出了一些问题,我们正在寻找解决方案: 1-Protobuf文件的可编辑性不如XML和J
XML
文件,这些文件采用XSLT
文件样式,并呈现给最终用户。在读取的数据变得更大之前,一切都很好,目前我们甚至计划拥有更多的数据,
XML
将不足以处理所有这些数据。现在我们应该采用
Protobuf
或JSON
而不是XML
来存储从设备读取的数据,并存储要写入设备的配置文件。Protobuf
对我们的好处是:1-比JSON快 2-更小的尺寸
然而,有人提出了一些问题,我们正在寻找解决方案:
1-
Protobuf
文件的可编辑性不如XML
和JSON
那么简单
以二进制格式存储,并且它不是人类可读的2-如果 正在读取的数据的结构因任何原因被更新(添加 例如,更多字段)这会影响向后兼容性吗 读取旧文件的步骤
3-是否有一种方法可以使用
Xslt
这是你的问题:“3-有没有办法用Xslt为protobuf文件(如Xml)设置样式”如果是这样,你可能想说得更清楚,因为它隐藏在大量的介绍性文本中。没有,我的问题是我是否应该将protobuf与相关的givensWell一起使用,这在很大程度上取决于您自己的情况和维护解决方案的能力。当然有人在使用Protobuf,他们有自己的理由,所以这是一个是否适合你的问题,根据给出的信息,我们没有人能回答这个问题。这个问题非常主观,不适合基于的堆栈溢出。我建议问一个更具体的、客观的问题,把EXI作为另一个选择。我猜想它将给您带来与Protobuf相同的所有好处,其优点是EXI与XML具有相同的数据模型,因此易于无损地转换为XML,这意味着更改对现有工具链的破坏性要小得多。对于大型XML文件,您应该在Net中使用XmlReader()类。使用XmlReader,我通常使用XMLLINQ一次阅读一节。请参阅以下帖子中的我的解决方案: