Vue d’ensemble du format Cartes adaptativesAdaptive Cards Overview

Le format Cartes adaptatives est un format d’échange de cartes ouvert qui permet aux développeurs d’échanger du contenu d’interface utilisateur de manière commune et cohérente.Adaptive Cards are an open card exchange format enabling developers to exchange UI content in a common and consistent way.

FonctionnementHow they work

Les créateurs de cartes décrivent leur contenu sous la forme d’un simple objet JSON.Card Authors describe their content as a simple JSON object. Ce contenu peut ensuite être restitué en mode natif à l’intérieur d’une application hôte, en s’adaptant automatiquement à l’apparence de l’hôte.That content can then be rendered natively inside a Host Application, automatically adapting to the look and feel of the Host.

Par exemple, Contoso Bot peut créer par le biais de Bot Framework une carte adaptative qui, une fois remise à Skype, adopte l’apparence d’une carte Skype.For example, Contoso Bot can author an Adaptive Card through the Bot Framework, and when delivered to Skype, it will look and feel like a Skype card. Quand ce même contenu est envoyé à Microsoft Teams, il en adopte l’apparence.When that same payload is sent to Microsoft Teams, it will look and feel like Microsoft Teams. Comme de plus en plus d’applications hôtes commencent à prendre en charge le format Cartes adaptatives, ce même contenu apparaît automatiquement dans ces applications, dont il épouse l’apparence.As more host apps start to support Adaptive Cards, that same payload will automatically light up inside these applications, yet still feel entirely native to the app.

Les utilisateurs sont gagnants, car tout semble familier.Users win because everything feels familiar. Les applications hôtes sont gagnantes, car elles contrôlent l’expérience utilisateur.Host apps win because they control the user experience. Les créateurs de cartes sont également gagnants, car la portée de leur contenu s’élargit sans travail supplémentaire.And Card Authors win because their content gets broader reach without any additional work.

ObjectifsGoals

Les objectifs des cartes adaptatives sont les suivants :The goals for Adaptive Cards are:

  • Portables : Sur toute application, tout appareil et toute infrastructure d’interface utilisateurPortable - To any app, device, and UI framework
  • Ouvertes : Les bibliothèques et le schéma sont open source et partagésOpen - Libraries and schema are open source and shared
  • Économiques : Faciles à définir, faciles à utiliserLow cost - Easy to define, easy to consume
  • Expressives : Ciblées sur le flux de contenu que les développeurs souhaitent produireExpressive - Targeted at the long tail of content that developers want to produce
  • Purement déclaratives : Aucun code n’est nécessaire ou autoriséPurely declarative - No code is needed or allowed
  • Automatiquement mises en forme : En fonction des instructions de la marque et de l’expérience utilisateur de l’application hôteAutomatically styled - To the Host application UX and brand guidelines

Pour les créateurs de cartesFor Card Authors

Le format Cartes adaptatives est idéal pour les créateurs de cartes :Adaptive Cards are great for card authors:

  • Un seul schéma : Vous avez un format unique, ce qui réduit le coût de création d’une carte et optimise le nombre d’endroits où elle peut être utilisée.One schema - You get a single format, minimizing the cost of creating a card and maximizing the number of places it can be used.
  • Expression plus riche : Votre contenu peut refléter plus fidèlement ce que vous voulez exprimer, car vous disposez d’une palette plus riche.Richer expression - Your content can more closely align with want you want to say because you have a richer palette to paint with.
  • Champ large : Votre contenu fonctionne sur un plus grand ensemble d’applications sans que vous deviez apprendre de nouveaux schémas.Broad reach - Your content will work across a broader set of applications without you having to learn new schemas.
  • Contrôles d’entrée : Votre carte peut inclure des contrôles d’entrée pour collecter des informations auprès de l’utilisateur qui voit la carte.Input controls - Your card can include input controls for gathering information from the user that is viewing the card.
  • Meilleurs outils : Un écosystème de cartes ouvert signifie que de meilleurs outils sont partagés par le plus grand nombre.Better tooling - An open card ecosystem means better tooling that is shared by everyone.

Pour les propriétaires d’expérience utilisateurFor Experience Owners

En tant que développeur d’applications, si vous souhaitez exploiter un écosystème de contenu tiers, vous aimerez le format Cartes adaptatives pour les raisons suivantes :If you are an app developer who wants to tap into an ecosystem of third-party content you will love Adaptive Cards because:

  • Expérience utilisateur cohérente : Vous garantissez une expérience cohérente pour vos utilisateurs, car vous avez la main sur le style de la carte rendue.Consistent user experience - You guarantee a consistent experience for your users, because you own the style of the rendered card.
  • Performances natives : Vous bénéficiez de performances natives grâce au ciblage direct de votre infrastructure d’interface utilisateur.Native performance - You get native performance as it targets your UI framework directly.
  • Sécurité : La distribution du contenu étant sécurisée, vous n’êtes pas obligé d’ouvrir votre infrastructure d’interface utilisateur à des scripts ou du balisage bruts.Safe - Content is delivered in safe payloads so you don't have to open up your UI framework to raw markup and scripting.
  • Implémentation facile : Vous profitez de bibliothèques prêtes à l’emploi qui facilitent l’intégration à toute plateforme prise en chargeEasy to implement - You get off the shelf libraries to easily integrate on any platform you support
  • Documentation gratuite : Vous gagnez du temps, car vous n’avez pas à inventer, implémenter et documenter un schéma propriétaire.Free documentation - You save time because you don't have to invent, implement, and document a proprietary schema.
  • Outils partagés : Vous gagnez du temps, car vous n’êtes pas obligé de créer des outils personnalisés.Shared tooling - You save time because you don't have to create custom tooling.

Principes de conception de baseCore Design Principles

Le format Cartes adaptatives repose sur un ensemble de principes directeurs qui sont utiles pour préserver la conception.Adaptive Cards are driven by a set of guiding principles that have been useful for keeping the design on track.

Privilégier la sémantique à une disposition de type « pixel parfait »Semantic instead of pixel-perfect

Nous nous sommes efforcés autant que possible de privilégier des concepts et valeurs sémantiques au détriment d’une disposition pure de type « pixel parfait ».We have striven as much as possible for semantic values and concepts as opposed to pure pixel-perfect layout. Des exemples d’expression sémantique sont montrés avec des couleurs, des tailles et des éléments comme FactSet et ImageSet.Examples of semantic expression show up in colors, sizes, and in elements like FactSet and ImageSet. L’application hôte peut ainsi prendre de meilleures décisions concernant l’apparence réelle.These all allow the host application to make better decisions about the actual look and feel.

Les créateurs de cartes ont la main sur le contenu, tandis que l’application hôte contrôle l’apparenceCard Authors own the content, Host App owns the look and feel

Le créateur d’une carte est maître de ce qu’il veut exprimer, mais l’application qui affiche la carte contrôle son apparence dans le contexte de son application.The card authors own what they want to say, but the application displaying it owns the look and feel of the card in the context of their application.

Rester simple, mais expressifKeep it simple, but expressive

Nous voulons que les cartes adaptatives soient expressives et universelles, mais nous ne souhaitons pas créer une infrastructure d’interface utilisateur.We want Adaptive Cards to be expressive and general purpose, but we don't want to build a UI framework. L’objectif consiste à créer une couche intermédiaire qui est « suffisamment expressive », à l’image de Markdown dans le cas des documents.The goal is to create an intermediate layer which is "expressive enough" in the same way Markdown is expressive enough for documents.

En misant sur la simplicité et l’expressivité, Markdown a créé une description simple et cohérente du contenu des documents.By focusing on keeping it simple and expressive, Markdown created an easy and consistent description of document content. De la même façon, nous pensons que le format Cartes adaptatives peut créer un moyen simple et expressif de décrire le contenu d’une carte.In the same way, we believe that Adaptive Cards can create a simple, expressive means of describing card content.

En cas de doute, ignorerWhen in doubt, keep it out

Il est plus facile d’effectuer un ajout plus tard que de rester avec une erreur.It is easier to add later than it is to live with a mistake. Si nous avons été amenés à débattre de l’opportunité d’ajouter ou non quelque chose, nous avons choisi de l’ignorer. Il est toujours plus facile d’ajouter une propriété que de conserver quelque chose que nous aurions aimé ne pas avoir à prendre en charge.If we found ourselves debating whether we should add something or not, we opted to leave it out. It is always easier to add a property than to live with a legacy we wish we didn't have to support.

Session Build 2019Build 2019 Session

La session suivante de la conférence Microsoft Build présente les cartes adaptatives dans des cas d’utilisation très divers.The following session at the Microsoft Build conference showcases Adaptive Cards in a variety of use cases.