对于模式如何随着时间的发展,Microsoft有一些最佳实践吗?我想确保我们遵循的是最佳实践,这样我们就有了两种方式的兼容性(即允许我们的Bond类型将旧版本进化到当前版本,以及向后兼容,允许从新版本转换回旧版本)。虽然其他序列化框架(如Avro )在文档中有明确的详细说明,但我认为这在文档(例如cs.html或https://microsoft.github.io/bond/manual/compiler.html#idl-syntax )中并没有具体解决。
至于它的价值,我们正在用.NET (C#/F#)编写,并打算最初使用CompactBinaryWriter和CompactBinaryReader格式。
例如,我设想在以下方面提供一些指导:
谢谢!
也会有兴趣,如果有任何活跃的论坛社区为这种类型的微软邦德问题,我无法找到一个.
发布于 2017-02-13 22:42:05
现在可以在这里找到邦德模式演进规则和最佳实践:Cpp.html#模式-演化 Cs.html#模式-进化
发布于 2017-01-26 09:49:31
我也不知道任何明确的模式演变指南,这肯定是邦德文档中的一个空白。根据我与邦德的合作,我可以回答你的一些问题:
CompactBinary格式最重要的是字段序号。DefaultAttribute仅在接口成员上有效。您可以添加所需字段而无需进一步注释,但在反序列化旧记录(不包含所需字段)时,我希望会出现运行时错误。_Obsolete的后缀),并引入一个“正确”类型的新字段。值得注意的是:您正在编写正在使用F#的F#,一些特定于F#的更改正在进行中,参见这里。这将支持记录、联合和核心F#数据类型。
更新:现在在邦德文档中有一个模式演化一节。
https://stackoverflow.com/questions/41860787
复制相似问题