自适应卡片是一种开放的卡片交换格式,可以让开发人员通过常见且一致的方式交换 UI 内容。
工作原理
卡片作者 将其内容描述为简单的 JSON 对象。 然后,可以在 主机应用程序中本机呈现该内容,并自动适应主机的外观和感觉。
例如,Contoso 机器人可以通过 Bot Framework 创作自适应卡片,当传送到 Skype 时,它将看起来像 Skype 卡。 当相同的有效负载发送到 Microsoft Teams 时,它将呈现出 Microsoft Teams 的外观和体验。 随着更多的主机应用开始支持自适应卡片,相同的有效负载会自动在这些应用程序中亮起,但仍完全原生于应用。
用户会赢,因为一切都感觉很熟悉。 主机应用之所以获胜,是因为它们控制用户体验。 卡片作者之所以获胜,是因为他们的内容在没有任何额外的工作的情况下获得更广泛的影响力。
目标
自适应卡片的目标包括:
- 可移植 - 任何应用、设备和 UI 框架
- 开放 - 库和架构是开放源代码和共享的
- 低成本 - 易于定义、易于使用
- Expressive - 以开发人员希望制作的长尾内容为目标
- 纯声明性 - 不需要或允许任何代码
- 自动设置样式 - 符合宿主应用程序的用户体验和品牌指南
对于卡片作者
Adaptive Cards对卡片作者非常适合。
- 一种架构 - 您将获得单一模式,最大限度地降低创建卡片的成本,并最大限度地增加其可用场所的数量。
- 更丰富的表达式 - 你的内容可以更紧密地与你想要说的内容保持一致,因为你有一个更丰富的调色板来绘制。
- 广泛接触 - 内容将在更广泛的应用程序中工作,而无需了解新的架构。
- 输入控件 - 卡片可以包含输入控件,以便从正在查看卡片的用户收集信息。
- 更好的工具 - 开放卡片生态系统意味着更好的工具,由每个人共享。
对于体验所有者
如果你是想要利用第三方内容的生态系统的应用开发人员,你会喜欢自适应卡片,因为:
- 一致的用户体验 - 可以保证用户的一致体验,因为你拥有呈现的卡片的样式。
- 本机性能 - 因为它直接针对 UI 框架,所以您将获得本机性能。
- 安全 - 内容在安全有效负载中传递,因此无需将 UI 框架打开原始标记和脚本。
- 易于实现 - 你可以从现成的库中轻松集成到你支持的任何平台上
- 免费文档 - 节省时间,因为无需发明、实现和记录专有架构。
- 共享工具 - 节省时间,因为无需创建自定义工具。
核心设计原则
自适应卡片由一组指导原则驱动,这些 原则 对于使设计保持正轨非常有用。
关注语义而不是精确的像素细节
我们尽可能力求实现语义和概念,而非追求纯像素的完美布局。 语义表达式的示例以颜色、大小和元素(如 FactSet 和 ImageSet)显示。 所有这些都允许主机应用程序对实际外观做出更好的决策。
卡片作者拥有内容,宿主应用拥有外观与风格。
卡片作者拥有他们想要表达的内容,但显示卡片的应用程序在其应用程序上下文中拥有卡片的外观和感觉。
保持简单,但要富有表现力
我们希望自适应卡片具有表达性和常规用途,但我们不想构建 UI 框架。 目标是创建一个中间层,其表现力与 Markdown 对文档的表达方式相同。
Markdown 专注于保持简单且富有表现力,创建了文档内容的简单且一致的说明。 同样,我们相信自适应卡片可以创建一种描述卡片内容的简单表达方式。
怀疑时,请将其排除在外
后来再添加比忍受错误更容易。 如果我们发现自己在争论是否应该添加某些内容,我们会选择不添加。添加新属性总是比维护我们不希望支持的旧属性更容易。
Build 2019 会议会话
在 Microsoft Build 大会的下一个会议展示自适应卡片在各种用例中的应用。
[!视频 [https://www.youtube.com/embed/wT1yFr_j6IM]