问题标签 [bond]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10809 浏览

serialization - Microsoft 的 Bond 和 Google 的 Protocol Buffers 之间的区别

最近(2015 年 1 月)Microsoft 开源Bond,他们用于处理模式化数据的框架。在许多方面,它类似于 Google 的Protocol Buffers

两者最大的区别是什么?有什么优点和缺点,也就是说,在哪些情况下我想使用一种,而不是另一种?当然,我不是在谈论明显的事情,比如与其他项目的一致性或已经存在的 API,而是两个库的特性。举个例子,bonded<T>如果我没记错的话,Bond 有它,它在 Protocol Buffers 中没有对应物。

0 投票
1 回答
1458 浏览

json - 有没有人比较或有任何 JSON 解析的 Bond vs JIL 基准?

BOND 是一个用于处理模式化数据的跨平台框架。它支持跨语言反序列化和强大的通用机制以有效地操作数据。Bond 在 Microsoft 广泛用于大规模服务。

它是用 Haskell 编写的,而且显然比 protobuf 快

JIL一个快速的 JSON(反)序列化器,建立在 Sigil 之上,带有一些有点疯狂的优化技巧。

它是使用 IL 编写的,而且显然比 protobuf 更快

但是我还没有看到有人比较这两者,而且我目前无法在开发环境中运行基准测试。

0 投票
1 回答
364 浏览

c# - 使用 Bond 反序列化 xml 抛出 System.IO.InvalidDataException :意外的节点类型

我使用以下代码与Bond玩了一下:

两个样本都输出预期的 xml:

反序列化抛出时两者都失败System.IO.InvalidDataException:意外的节点类型

真的不知道在哪里寻找错误,建议?

0 投票
1 回答
1085 浏览

json - 为什么 Bond 映射的 JSON 序列化是数组而不是字典?

假设我有一个 Bond 结构,例如

当我使用 将此对象的实例序列化为 JSONSimpleJsonWriter时,我得到以下信息

请注意,这phone_numbers是一个字符串数组。

但我会期待更多这样的事情:

wherephone_numbers是一个有两个成员的对象。

这是怎么回事?

0 投票
1 回答
141 浏览

xsd - 有没有办法从 XSD 架构生成 Microsoft Bond 架构?

我想尝试 Microsoft Bond 架构。我已经有一个很大的 XSD 文件,我不想手动创建一个 Bond 文件。Bond 编译器是否提供任何 API 来将 XSD 转换为 Bond?

0 投票
1 回答
252 浏览

c# - Representing C# TimeSpan in Bond

Is there an equivalent of C#'s TimeSpan in the Bond type system? If not, how can I interoperate between TimeSpan and a field in a Bond struct?

0 投票
1 回答
7508 浏览

c# - 在 C# 项目中使用 Microsoft Bond

是否有在 C# 项目中引用 Microsoft Bond 架构文件的标准方法?

0 投票
1 回答
801 浏览

bond - Microsoft Bond 中的会员编号是什么意思?

使用Microsoft Bond(特别是 C# 库),我看到每当定义 Bond 结构时,它看起来像这样:

这些数字 (0, 5, ...) 是什么意思?

他们在继承时需要特殊处理吗?(我是否需要确保我不会覆盖在我的祖先中定义的具有相同编号的成员?)

0 投票
1 回答
254 浏览

c# - 通过 ZeroMQ 进行 MS Bond 序列化的运行时“EndOfStreamException”错误

首先,值得一提的是,在单个 F# 解决方案中,Bond消息的序列化和反序列化工作正常。但是,我无法正确处理通过 ZeroMQ 发送和/或接收消息。

以下程序的订阅方存在运行时错误。.bond 文件是使用bond 编译器定义和编译的。然后从 C# 创建一个 dll 以从 F# 调用。然后我有两个 F# 程序。一个通过 tcp 套接字发布序列化数据,另一个是订阅者。当在 sub 上接收到消息时,尝试 Unmarshal 原始数据的行是导致运行时错误的行。任何人都可以看到这个的原因吗?

[编辑] 根据 Fyodor 的评论,我在发布者方面进行了更改,从而更改了订阅者方面的错误。所以这个错误可能与我如何打包和解包信息有关。

这是 .bond 文件

这是发布者:

这是订户:

0 投票
2 回答
1014 浏览

bond - Microsoft Bond 架构演变最佳实践

Microsoft Bond 是否有一些关于架构如何随时间演变的最佳实践?我想确保我们遵循最佳实践,以便我们有两种方式的兼容性(即允许我们的 Bond 类型将旧版本演变为当前版本,以及允许从新版本转换回旧版本的向后兼容性)。我没有在文档中看到这一点(例如https://microsoft.github.io/bond/manual/bond_cs.htmlhttps://microsoft.github.io/bond/manual/compiler.html#idl -syntax),尽管其他序列化框架(如 Avro)在其文档中明确详细说明了这一点。

值得一提的是,我们使用 .NET (C#/F#) 编写并打算最初使用 CompactBinaryWriter 和 CompactBinaryReader 格式。

例如,我想象一些沿着这些方向的指导:

  1. 由于字段序号用于字段解析,而不是直接使用名称(SimpleJSON 除外),因此字段名称可能会随时间而变化。我相信这是真的,是吗?
  2. 添加新的“必填”字段需要您为该字段提供默认值
  3. 删除新版本中的字段是可以的,前提是旧版本分配了默认值
  4. 改变字段的类型呢?例如,一个字段可以从版本 1 中的字符串字段更改为版本 2 中的 int64 吗?它可以从字符串更改为自定义联合(带有可选字段的自定义类型)吗?
  5. 还有其他建议吗?

谢谢!

如果有针对此类 Microsoft Bond 问题的任何活跃论坛社区,我也会感兴趣,但我找不到...