Visão geral de Cartões AdaptáveisAdaptive Cards Overview

Cartões Adaptáveis são um formato aberto de troca de cartões que permite aos desenvolvedores trocar o conteúdo da interface do usuário de uma maneira comum e consistente.Adaptive Cards are an open card exchange format enabling developers to exchange UI content in a common and consistent way.

Como eles funcionamHow they work

Autores de cartão descrevem seu conteúdo como um objeto JSON simples.Card Authors describe their content as a simple JSON object. Esse conteúdo, em seguida, pode ser renderizado nativamente dentro de um Aplicativo host, adaptando-se automaticamente à aparência e à funcionalidade do host.That content can then be rendered natively inside a Host Application, automatically adapting to the look and feel of the Host.

Por exemplo, o Bot da Contoso pode criar um cartão adaptável por meio da Bot Framework e, quando ele for entregue ao Skype, terá aparência e funcionamento semelhantes aos de um cartão do 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. Quando essa mesma carga for enviada ao Microsoft Teams, ela terá aparência e funcionamento semelhantes aos do Microsoft Teams.When that same payload is sent to Microsoft Teams, it will look and feel like Microsoft Teams. Conforme mais aplicativos host começarem a dar suporte a Cartões Adaptáveis, essa mesma carga acenderá automaticamente dentro desses aplicativos, mas ainda parecerá totalmente nativa para o aplicativo.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.

Os usuários se beneficiam porque tudo parece familiar.Users win because everything feels familiar. Os aplicativos host se beneficiam porque eles controlam a experiência do usuário.Host apps win because they control the user experience. E Autores de Cartão se beneficiam porque seu conteúdo obtém alcance mais amplo, sem nenhum trabalho adicional.And Card Authors win because their content gets broader reach without any additional work.

MetasGoals

As metas para os Cartões Adaptáveis são:The goals for Adaptive Cards are:

  • Portátil – para qualquer aplicativo, dispositivo e estrutura de interface do usuárioPortable - To any app, device, and UI framework
  • Aberto – as bibliotecas e o esquema são de software livre e compartilhadosOpen - Libraries and schema are open source and shared
  • Baixo custo – fácil de definir, fácil de usarLow cost - Easy to define, easy to consume
  • Expressivo – destinado à longa cauda de conteúdo que os desenvolvedores desejam produzirExpressive - Targeted at the long tail of content that developers want to produce
  • Puramente declarativo – nenhum código é necessário ou permitidoPurely declarative - No code is needed or allowed
  • Automaticamente estilizado – para as diretrizes de marca e a experiência do usuário do aplicativo hostAutomatically styled - To the Host application UX and brand guidelines

Para autores de cartãoFor Card Authors

Os cartões adaptáveis são ótimos para autores de cartão:Adaptive Cards are great for card authors:

  • Um esquema – obter um único formato, minimizando o custo de criação de um cartão e maximizando o número de locais onde ele pode ser usado.One schema - You get a single format, minimizing the cost of creating a card and maximizing the number of places it can be used.
  • Expressão mais completa – seu conteúdo pode ficar mais alinhado com o que você deseja dizer, porque você tem uma paleta mais completa para pintar.Richer expression - Your content can more closely align with want you want to say because you have a richer palette to paint with.
  • Amplo alcance – seu conteúdo funcionará em um conjunto mais amplo de aplicativos sem a necessidade de aprender novos esquemas.Broad reach - Your content will work across a broader set of applications without you having to learn new schemas.
  • Controles de entrada – seu cartão pode incluir controles de entrada para a coleta de informações do usuário que está exibindo o cartão.Input controls - Your card can include input controls for gathering information from the user that is viewing the card.
  • Ferramentas melhores – um ecossistema de cartão aberto significa melhores ferramentas sendo compartilhadas por todos.Better tooling - An open card ecosystem means better tooling that is shared by everyone.

Para os proprietários de experiênciaFor Experience Owners

Se você for um desenvolvedor de aplicativo que deseja aproveitar um ecossistema de conteúdo de terceiros, você vai adorar os Cartões Adaptáveis porque:If you are an app developer who wants to tap into an ecosystem of third-party content you will love Adaptive Cards because:

  • Experiência do usuário consistente – por ser proprietário do estilo do cartão renderizado, você assegura uma experiência consistente para seus usuários.Consistent user experience - You guarantee a consistent experience for your users, because you own the style of the rendered card.
  • Desempenho nativo – você obtém desempenho nativo, pois ele se destina diretamente à estrutura de interface do usuário.Native performance - You get native performance as it targets your UI framework directly.
  • Segurança – o conteúdo é entregue em cargas seguras para que você não precise abrir sua estrutura de interface do usuário para marcação bruta e scripts.Safe - Content is delivered in safe payloads so you don't have to open up your UI framework to raw markup and scripting.
  • Fácil de implementar – você pode abandonar as bibliotecas de prateleira para integrar facilmente em qualquer plataforma à qual você dá suporteEasy to implement - You get off the shelf libraries to easily integrate on any platform you support
  • Documentação gratuita – você poupa tempo porque não precisa inventar, implementar e documentar um esquema proprietário.Free documentation - You save time because you don't have to invent, implement, and document a proprietary schema.
  • Ferramentas compartilhadas – você poupa tempo porque não precisa criar ferramentas personalizadas.Shared tooling - You save time because you don't have to create custom tooling.

Princípios de design essenciaisCore Design Principles

Os Cartões Adaptáveis são controlados por um conjunto de princípios básicos que têm sido úteis para manter o design no caminho certo.Adaptive Cards are driven by a set of guiding principles that have been useful for keeping the design on track.

Semântica em vez de pixel perfeitoSemantic instead of pixel-perfect

Nos esforçamos ao máximo para obtermos conceitos e valores semânticos em vez de layout de pixel perfeito puro.We have striven as much as possible for semantic values and concepts as opposed to pure pixel-perfect layout. Exemplos de expressão semântica aparecem em cores, tamanhos e em elementos como FactSet e ImageSet.Examples of semantic expression show up in colors, sizes, and in elements like FactSet and ImageSet. Todos eles permitem que o aplicativo host tome decisões melhores sobre a aparência e a experiência reais.These all allow the host application to make better decisions about the actual look and feel.

O conteúdo pertence aos autores do cartão, enquanto a aparência e a experiência pertencem ao aplicativo hostCard Authors own the content, Host App owns the look and feel

Os autores do cartão são proprietários do que desejam dizer, mas o aplicativo que exibe esse cartão é proprietário da aparência e da experiência do cartão no contexto do aplicativo deles.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.

Mantenha-o simples, mas expressivoKeep it simple, but expressive

Queremos que os Cartões Adaptáveis sejam de uso geral e expressivos, mas não queremos criar uma estrutura de interface do usuário.We want Adaptive Cards to be expressive and general purpose, but we don't want to build a UI framework. A meta é criar uma camada intermediária que é "suficientemente expressiva", da mesma forma que o Markdown é suficientemente expressivo para documentos.The goal is to create an intermediate layer which is "expressive enough" in the same way Markdown is expressive enough for documents.

Ao concentrar-se em mantê-lo simples e expressivo, o Markdown criou uma descrição simples e consistente do conteúdo do documento.By focusing on keeping it simple and expressive, Markdown created an easy and consistent description of document content. Da mesma forma, acreditamos que os Cartões Adaptáveis podem criar um meio simples e expressivo de descrever o conteúdo do cartão.In the same way, we believe that Adaptive Cards can create a simple, expressive means of describing card content.

Em caso de dúvida, deixe foraWhen in doubt, keep it out

É mais fácil adicionar algo posteriormente do que conviver com um erro.It is easier to add later then it is to live with a mistake. Se nos encontramos debatendo se deveríamos acrescentar algo ou não, optamos por deixar de fora. Sempre é mais fácil adicionar uma propriedade do que conviver com um herdado ao qual gostaríamos de não precisar dar suporte.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.

Sessão do Build 2019Build 2019 Session

A sessão a seguir, apresentada na conferência Microsoft Build, mostra Cartões Adaptáveis em vários casos de uso.The following session at the Microsoft Build conference showcases Adaptive Cards in a variety of use cases.