Início Rápido: Criar um aplicativo de tarefas pendentes com o Xamarin usando a conta de API de SQL do Azure Cosmos DBQuickstart: Build a todo app with Xamarin using Azure Cosmos DB SQL API account

O Azure Cosmos DB é o serviço de banco de dados multimodelo distribuído globalmente da Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. É possível criar e consultar rapidamente documentos, chave/valor e bancos de dados do grafo. Todos se beneficiam de recursos de escala horizontal e distribuição global no núcleo do Azure Cosmos DB.You can quickly create and query document, key/value, and graph databases, all of which benefit from the global distribution and horizontal scale capabilities at the core of Azure Cosmos DB.

Observação

Encontre um exemplo de código de um aplicativo Xamarin de exemplo totalmente canônico mostrando várias ofertas do Azure, incluindo o CosmosDB, no GitHub clicando aqui.Sample code for an entire canonical sample Xamarin app showcasing multiple Azure offerings, including CosmosDB, can be found on GitHub here. Esse aplicativo demonstra a exibição de contatos geograficamente disperso, e permite que os contatos atualizem sua localização.This app demonstrates viewing geographically dispersed contacts, and allowing those contacts to update their location.

Este início rápido demonstra como criar uma conta de API do SQL do Azure Cosmos DB, um banco de dados de documento e uma coleção usando o Portal do Azure.This quickstart demonstrates how to create an Azure Cosmos DB SQL API account, document database, and collection using the Azure portal. Em seguida, você compilará e implantará um aplicativo Web de lista de tarefas pendentes na API do SQL .NET e no Xamarin usando o Xamarin.Forms e o padrão de arquitetura MVVM.You'll then build and deploy a todo list web app built on the SQL .NET API and Xamarin utilizing Xamarin.Forms and the MVVM architectural pattern.

Aplicativo de tarefas pendentes do Xamarin em execução no iOS

Pré-requisitosPrerequisites

Se você estiver desenvolvendo no Windows e ainda não tiver o Visual Studio 2019 instalado, faça o download e use o Visual Studio 2019 Community Edition gratuito.If you are developing on Windows and don’t already have Visual Studio 2019 installed, you can download and use the free Visual Studio 2019 Community Edition. Verifique se você habilitou as cargas de trabalho do Desenvolvimento do Azure e do Desenvolvimento móvel com .NET durante a instalação do Visual Studio.Make sure that you enable Azure development and Mobile Development with .NET workloads during the Visual Studio setup.

Se estiver usando um Mac, você pode baixar o Visual Studio para Mac grátis.If you are using a Mac, you can download the free Visual Studio for Mac.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Você pode Experimentar o Azure Cosmos DB gratuitamente sem uma assinatura do Azure, gratuitamente e sem compromisso.You can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. Ou, você pode usar o Emulador do Azure Cosmos DB com um URI de https://localhost:8081.Or, you can use the Azure Cosmos DB Emulator with a URI of https://localhost:8081. A Chave Primária é fornecida nas Solicitações de autenticação.The Primary Key is provided in Authenticating requests.

Criar uma conta de banco de dadosCreate a database account

  1. Entre no Portal do Azure.Sign in to the Azure portal.

  2. Selecione Criar um recurso > Bancos de dados > Azure Cosmos DB.Select Create a resource > Databases > Azure Cosmos DB.

    O painel Bancos de Dados do portal do Azure

  3. Na página Criar Conta do Azure Cosmos DB, insira as configurações básicas da nova conta do Azure Cosmos.On the Create Azure Cosmos DB Account page, enter the basic settings for the new Azure Cosmos account.

    ConfiguraçãoSetting ValorValue DESCRIÇÃODescription
    AssinaturaSubscription Nome da assinaturaSubscription name Selecione a assinatura do Azure que você deseja usar para essa conta do Azure Cosmos.Select the Azure subscription that you want to use for this Azure Cosmos account.
    Grupo de recursosResource Group Nome do grupo de recursosResource group name Selecione um grupo de recursos ou selecione Criar novo, então insira um nome exclusivo para o novo grupo de recursos.Select a resource group, or select Create new, then enter a unique name for the new resource group.
    Nome da contaAccount Name Insira um nome exclusivoEnter a unique name Insira um nome para identificar a conta do Azure Cosmos.Enter a name to identify your Azure Cosmos account. Como documents.Azure.com é acrescentado à ID que você fornece para criar o URI, use uma ID exclusiva.Because documents.azure.com is appended to the ID that you provide to create your URI, use a unique ID.

    A ID pode conter apenas letras minúsculas, números e o caractere de hífen (-).The ID can only contain lowercase letters, numbers, and the hyphen (-) character. Ela deve ter entre 3 e 31 caracteres.It must be between 3-31 characters in length.
    APIAPI Núcleo (SQL)Core (SQL) A API determina o tipo de conta a ser criada.The API determines the type of account to create. O Azure Cosmos DB fornece cinco APIs: Núcleo (SQL) e MongoDB para dados de documento, Gremlin para dados de grafo, Tabela do Azure e Cassandra.Azure Cosmos DB provides five APIs: Core (SQL) and MongoDB for document data, Gremlin for graph data, Azure Table, and Cassandra. No momento, você deve criar uma conta separada para cada API.Currently, you must create a separate account for each API.

    Selecione Núcleo (SQL) para criar uma consulta e um banco de dados de documento usando a sintaxe SQL.Select Core (SQL) to create a document database and query by using SQL syntax.

    Saiba mais sobre a API do SQL.Learn more about the SQL API.
    Local padrãoLocation Selecione a região mais próxima de seus usuáriosSelect the region closest to your users Selecione uma localização geográfica para hospedar a sua conta do Azure Cosmos DB.Select a geographic location to host your Azure Cosmos DB account. Use a localização mais próxima dos usuários para fornecer a eles acesso mais rápido aos dados.Use the location that is closest to your users to give them the fastest access to the data.

    A página da nova conta do Azure Cosmos DB

  4. Selecione Examinar + criar.Select Review + create. Você pode ignorar as seções Rede e Marcas.You can skip the Network and Tags sections.

  5. Examine as configurações da conta e selecione Criar.Review the account settings, and then select Create. São necessários alguns minutos para criar a conta.It takes a few minutes to create the account. Aguarde até que a página do portal exiba Sua implantação está concluída.Wait for the portal page to display Your deployment is complete.

    O painel Notificações do portal do Azure

  6. Selecione Ir para recurso para ir para a página da conta do Azure Cosmos DB.Select Go to resource to go to the Azure Cosmos DB account page.

    A página da conta do Azure Cosmos DB

Adicionar um contêinerAdd a container

Agora, você pode usar a ferramenta Data Explorer no portal do Azure para criar um banco de dados e um contêiner.You can now use the Data Explorer tool in the Azure portal to create a database and container.

  1. Selecione Data Explorer > Novo Contêiner.Select Data Explorer > New Container.

    A área Adicionar Contêiner é exibida à extrema direita; talvez seja necessário rolar a página para a direita para vê-la.The Add Container area is displayed on the far right, you may need to scroll right to see it.

    O Data Explorer do portal do Azure, painel Adicionar Contêiner

  2. Na página Adicionar contêiner, insira as configurações do novo contêiner.In the Add container page, enter the settings for the new container.

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    ID do banco de dadosDatabase ID TarefasTasks Insira ToDoList como o nome para o novo banco de dados.Enter ToDoList as the name for the new database. Os nomes dos banco de dados devem conter de 1 a 255 caracteres e não podem conter /, \\, #, ? nem um espaço à direita.Database names must contain from 1 through 255 characters, and they cannot contain /, \\, #, ?, or a trailing space. Marque a opção Provisionar a produtividade do banco de dados; ela permite que você compartilhe a produtividade provisionada para o banco de dados em todos os contêineres no banco de dados.Check the Provision database throughput option, it allows you to share the throughput provisioned to the database across all the containers within the database. Essa opção também ajuda na economia de custo.This option also helps with cost savings.
    Taxa de transferênciaThroughput 400400 Deixe a taxa de transferência em 400 unidades de solicitação por segundo (RU/s).Leave the throughput at 400 request units per second (RU/s). Se quiser reduzir a latência, você poderá escalar verticalmente a taxa de transferência mais tarde.If you want to reduce latency, you can scale up the throughput later.
    ID do contêinerContainer ID ItensItems Insira Itens como o nome do novo contêiner.Enter Items as the name for your new container. As IDs do contêiner têm os mesmos requisitos de caractere dos nomes de bancos de dados.Container IDs have the same character requirements as database names.
    Chave de partiçãoPartition key /category/category O exemplo descrito neste artigo usa /category como a chave de partição.The sample described in this article uses /category as the partition key.

    Além das configurações anteriores, opcionalmente, você pode adicionar Chaves exclusivas ao contêiner.In addition to the preceding settings, you can optionally add Unique keys for the container. Vamos deixar o campo vazio neste exemplo.Let's leave the field empty in this example. As chaves exclusivas oferecem aos desenvolvedores a capacidade de adicionar uma camada de integridade dos dados ao seu banco de dados.Unique keys provide developers with the ability to add a layer of data integrity to the database. Ao criar uma política de chave exclusiva durante a criação de um contêiner, você garante a exclusividade de um ou mais valores por chave de partição.By creating a unique key policy while creating a container, you ensure the uniqueness of one or more values per partition key. Para obter mais informações, consulte o artigo Chaves exclusivas no Azure Cosmos DB.To learn more, refer to the Unique keys in Azure Cosmos DB article.

    Selecione OK.Select OK. O Data Explorer exibe o novo banco de dados e o contêiner.The Data Explorer displays the new database and container.

Adicionar dados de exemploAdd sample data

Agora você pode adicionar dados à sua nova coleção usando o Data Explorer.You can now add data to your new collection using Data Explorer.

  1. No Data Explorer, o novo banco de dados aparece no painel Coleções.In Data Explorer, the new database appears in the Collections pane. Expanda o banco de dados Tarefas, expanda a coleção Itens, clique em Documentos e clique em Novos Documentos.Expand the Tasks database, expand the Items collection, click Documents, and then click New Documents.

    Criar novos documentos no Data Explorer no portal do Azure

  2. Agora, adicione um documento à coleção com a seguinte estrutura.Now add a document to the collection with the following structure.

    {
        "id": "1",
        "category": "personal",
        "name": "groceries",
        "description": "Pick up apples and strawberries.",
        "isComplete": false
    }
    
  3. Depois de ter adicionado o json à guia Documentos, clique em Salvar.Once you've added the json to the Documents tab, click Save.

    Copie nos dados json e clique em Salvar no Data Explorer no portal do Azure

  4. Crie e salve mais um documento onde você insere um valor exclusivo para a propriedade id e altere as outras propriedades quando achar adequado.Create and save one more document where you insert a unique value for the id property, and change the other properties as you see fit. Os novos documentos podem ter qualquer estrutura que você deseje, pois o Azure Cosmos DB não impõe nenhum esquema para seus dados.Your new documents can have any structure you want as Azure Cosmos DB doesn't impose any schema on your data.

Consultar seus dadosQuery your data

Você pode usar consultas no Data Explorer para recuperar e filtrar os dados.You can use queries in Data Explorer to retrieve and filter your data.

  1. Na parte superior da guia Documentos no Data Explorer, examine a consulta padrão SELECT * FROM c.At the top of the Documents tab in Data Explorer, review the default query SELECT * FROM c. Essa consulta recupera e exibe todos os documentos na coleção na ordem da ID.This query retrieves and displays all documents in the collection in ID order.

    A consulta padrão no Data Explorer é SELECT * FROM c

  2. Para alterar a consulta, selecione Editar Filtro, substitua a consulta padrão por ORDER BY c._ts DESC e selecione Aplicar Filtro.To change the query, select Edit Filter, replace the default query with ORDER BY c._ts DESC, and then select Apply Filter.

    Altere a consulta padrão adicionando ORDER BY c._ts DESC e clicando Aplicar Filtro

    A consulta modificada exibe os documentos em ordem decrescente com base em seu carimbo de data/hora, portanto, agora o segundo documento é listado primeiro.The modified query displays the documents in descending order based on their time stamp, so now your second document is listed first.

    Alterada a consulta para ORDER BY c._ts DESC e clicando em Aplicar Filtro

Se você estiver familiarizado com a sintaxe SQL, poderá inserir qualquer consulta SQL compatível na caixa de predicado de consulta.If you're familiar with SQL syntax, you can enter any supported SQL queries in the query predicate box. Você também pode usar o Data Explorer para criar procedimentos armazenados, UDFs e gatilhos para lógica de negócios do lado do servidor.You can also use Data Explorer to create stored procedures, UDFs, and triggers for server-side business logic.

O Data Explorer fornece acesso fácil ao portal do Azure para todos os recursos de acesso a dados programático interno por disponível nas APIs.Data Explorer provides easy Azure portal access to all of the built-in programmatic data access features available in the APIs. Você também pode usar o portal para dimensionar a taxa de transferência, obter as chaves e as cadeias de conexão e examinar as métricas e os SLAs para sua conta do Azure Cosmos DB.You also use the portal to scale throughput, get keys and connection strings, and review metrics and SLAs for your Azure Cosmos DB account.

Clonar o aplicativo de exemploClone the sample application

Agora, vamos clonar o aplicativo de API do SQL Xamarin no GitHub, revisar o código, obter as chaves de API e executá-lo.Now let's clone the Xamarin SQL API app from GitHub, review the code, obtain the API keys, and run it. Você verá como é fácil trabalhar usando dados de forma programática.You'll see how easy it is to work with data programmatically.

  1. Abra um prompt de comando, crie uma nova pasta chamada exemplos de git e feche o prompt de comando.Open a command prompt, create a new folder named git-samples, then close the command prompt.

    md "C:\git-samples"
    
  2. Abra uma janela de terminal de git, como git bash, e use o comando cd para alterar para a nova pasta para instalar o aplicativo de exemplo.Open a git terminal window, such as git bash, and use the cd command to change to the new folder to install the sample app.

    cd "C:\git-samples"
    
  3. Execute o comando a seguir para clonar o repositório de exemplo.Run the following command to clone the sample repository. Este comando cria uma cópia do aplicativo de exemplo no seu computador.This command creates a copy of the sample app on your computer.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-sql-xamarin-getting-started.git
    
  4. Em seguida, abra o arquivo ToDoItems.sln da pasta exemplos/xamarin/ToDoItems no Visual Studio.Then open the ToDoItems.sln file from the samples/xamarin/ToDoItems folder in Visual Studio.

Obter as chaves de APIObtain your API keys

Volte ao Portal do Azure para obter as informações da sua chave de API e copie-as para o aplicativo.Go back to the Azure portal to get your API key information and copy it into the app.

  1. No Portal do Azure, na sua conta de API do SQL do Azure Cosmos DB, no painel de navegação esquerdo, clique em Chaves e, em seguida, clique em Chaves de leitura/gravação.In the Azure portal, in your Azure Cosmos DB SQL API account, in the left navigation click Keys, and then click Read-write Keys. Você usará os botões de cópia do lado direito da tela para copiar o URI e a Chave Primária para o arquivo APIKeys.cs na próxima etapa.You'll use the copy buttons on the right side of the screen to copy the URI and Primary Key into the APIKeys.cs file in the next step.

    Exibir e copiar uma chave de acesso no Portal do Azure, folha Chaves

  2. Tanto no Visual Studio 2019 quanto no Visual Studio para Mac, abra o arquivo APIKeys.cs na pasta azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Helpers.In either Visual Studio 2019 or Visual Studio for Mac, open the APIKeys.cs file in the azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Helpers folder.

  3. Copie o valor do URI do portal (usando o botão de cópia) e o torne o valor da variável CosmosEndpointUrl no arquivo APIKeys.cs.Copy your URI value from the portal (using the copy button) and make it the value of the CosmosEndpointUrl variable in APIKeys.cs.

    public static readonly string CosmosEndpointUrl = "{Azure Cosmos DB account URL}";

  4. Em seguida, copie o valor da CHAVE PRIMÁRIA do portal e transforme-o no valor de Cosmos Auth Key no arquivo APIKeys.cs.Then copy your PRIMARY KEY value from the portal and make it the value of the Cosmos Auth Key in APIKeys.cs.

    public static readonly string CosmosAuthKey = "{Azure Cosmos DB secret}";

Importante

Esse início rápido codifica a chave de autenticação do Azure Cosmos DB para fins de demonstração.This quick start hard codes the Azure Cosmos DB authentication key for the sake of demonstration purposes. Não recomendamos a codificação de uma chave de autenticação quando você a estiver usando em um aplicativo de produção.It's not recommended to hard code an authentication key when you are using it in a production app. Para saber como acessar o Azure Cosmos DB com segurança usando um token de recursos, veja o artigo Autenticar usuários com o Azure Cosmos DB.To learn how to access Azure Cosmos DB in a securely by using a resource token, view the Authenticating users with Azure Cosmos DB article.

Examine o códigoReview the code

Esta solução demonstra como criar um aplicativo de tarefas pendentes usando a API do SQL do Azure Cosmos DB e o Xamarin.Forms.This solution demonstrates how to create a ToDo app using the Azure Cosmos DB SQL API and Xamarin.Forms. O aplicativo tem duas guias. A primeira contém uma exibição de lista mostrando itens de tarefas pendentes que ainda não foram concluídas.The app has two tabs, the first tab contains a list view showing todo items that are not yet complete. A segunda guia exibe os itens de tarefas pendentes que foram concluídos.The second tab displays todo items that have been completed. Além de exibir os itens de tarefas pendentes não concluídos na primeira guia, você também pode adicionar novos itens de tarefas pendentes, editar os existentes e marcar itens como concluído.In addition to viewing not completed todo items in the first tab, you can also add new todo items, edit existing ones, and mark items as completed.

Copie nos dados json e clique em Salvar no Data Explorer no portal do Azure

O código na solução ToDoItems contém:The code in the ToDoItems solution contains:

  • ToDoItems.Core: trata-se de um projeto .NET Standard contendo um projeto Xamarin.Forms e o código da lógica de aplicativo compartilhado que mantém os itens de tarefas pendentes no Azure Cosmos DB.ToDoItems.Core: This is a .NET Standard project holding a Xamarin.Forms project and shared application logic code that maintains todo items within Azure Cosmos DB.
  • ToDoItems.Android: este projeto contém o aplicativo Android.ToDoItems.Android: This project contains the Android app.
  • ToDoItems.iOS: este projeto contém o aplicativo iOS.ToDoItems.iOS: This project contains the iOS app.

Agora vamos fazer uma rápida revisão de como o aplicativo se comunica com o Azure Cosmos DB.Now let's take a quick review of how the app communicates with Azure Cosmos DB.

  • O Pacote NuGet do Microsoft.Azure.DocumentDb.Core deve ser adicionado em todos os projetos.The Microsoft.Azure.DocumentDb.Core NuGet package is required to be added to all projects.

  • A classe ToDoItem na pasta azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Models modela os documentos na coleção Itens criada acima.The ToDoItem class in the azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Models folder models the documents in the Items collection created above. Observe que a propriedade de nomeação diferencia maiúsculas de minúsculas.Note that property naming is case-sensitive.

  • A classe CosmosDBService na pasta azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Services encapsula a comunicação ao Azure Cosmos DB.The CosmosDBService class in the azure-documentdb-dotnet/samples/xamarin/ToDoItems/ToDoItems.Core/Services folder encapsulates the communication to Azure Cosmos DB.

  • Na classe CosmosDBService há uma variável do tipo DocumentClient.Within the CosmosDBService class there is a DocumentClient type variable. O DocumentClient é usado para configurar e executar solicitações em relação à conta do Azure Cosmos DB e é instanciado na linha 31:The DocumentClient is used to configure and execute requests against the Azure Cosmos DB account, and is instantiated on line 31:

    docClient = new DocumentClient(new Uri(APIKeys.CosmosEndpointUrl), APIKeys.CosmosAuthKey);
    
  • Ao consultar uma coleção de documentos, é usado o método DocumentClient.CreateDocumentQuery<T>, como visto aqui na função CosmosDBService.GetToDoItems:When querying a collection for documents, the DocumentClient.CreateDocumentQuery<T> method is used, as seen here in the CosmosDBService.GetToDoItems function:

    public async static Task<List<ToDoItem>> GetToDoItems()
    {
        var todos = new List<ToDoItem>();
    
        var todoQuery = docClient.CreateDocumentQuery<ToDoItem>(
                                UriFactory.CreateDocumentCollectionUri(databaseName, collectionName),
                                .Where(todo => todo.Completed == false)
                                .AsDocumentQuery();
    
        while (todoQuery.HasMoreResults)
        {
            var queryResults = await todoQuery.ExecuteNextAsync<ToDoItem>();
    
            todos.AddRange(queryResults);
        }
    
        return todos;
    }
    

    O CreateDocumentQuery<T> usa um URI que aponta para a coleção criada na seção anterior.The CreateDocumentQuery<T> takes a URI that points to the collection created in the previous section. E também é possível especificar operadores LINQ, como uma cláusula Where.And you are also able to specify LINQ operators such as a Where clause. Nesse caso, somente os itens de tarefas pendentes que não foram concluídos são retornados.In this case only todo items that are not completed are returned.

    A função CreateDocumentQuery<T> é executada de forma síncrona e retorna um IQueryable<T>.The CreateDocumentQuery<T> function is executed synchronously, and returns an IQueryable<T>. No entanto, o método AsDocumentQuery converte o IQueryable<T> para um objeto IDocumentQuery<T> que pode ser executado de forma assíncrona,However, the AsDocumentQuery method converts the IQueryable<T> to an IDocumentQuery<T> object which can be executed asynchronously. não bloqueando, portanto, o thread de interface do usuário para aplicativos móveis.Thus not blocking the UI thread for mobile applications.

    A função IDocumentQuery<T>.ExecuteNextAsync<T> recupera a página de resultados do Azure Cosmos DB, na qual uma verificação HasMoreResults vê se ainda há resultados adicionais a serem retornados.The IDocumentQuery<T>.ExecuteNextAsync<T> function retrieves the page of results from Azure Cosmos DB, which HasMoreResults checking to see if additional results remain to be returned.

Dica

Várias funções que operam em coleções e documentos do Azure Cosmos DB utilizam um URI como parâmetro para especificar o endereço da coleção ou do documento.Several functions that operate on Azure Cosmos DB collections and documents take an URI as a parameter which specifies the address of the collection or document. Esse URI é construído usando a classe URIFactory.This URI is constructed using the URIFactory class. Todos os URIs para bancos de dados, coleções e documentos podem ser criados com essa classe.URIs for databases, collections, and documents can all be created with this class.

  • A função ComsmosDBService.InsertToDoItem na linha 107 demonstra como inserir um novo documento:The ComsmosDBService.InsertToDoItem function on line 107 demonstrates how to insert a new document:

    public async static Task InsertToDoItem(ToDoItem item)
    {
        ...
        await docClient.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), item);
        ...
    }
    

    O URI da coleção de documento é especificado, assim como o item a ser inserido.The document collection URI is specified as well as the item to be inserted.

  • A função CosmosDBService.UpdateToDoItem na linha 124 demonstra como substituir um documento existente por um novo:The CosmosDBService.UpdateToDoItem function on line 124 demonstrates how to replace an existing document with a new one:

    public async static Task UpdateToDoItem(ToDoItem item)
    {
        ...
        var docUri = UriFactory.CreateDocumentUri(databaseName, collectionName, item.Id);
    
        await docClient.ReplaceDocumentAsync(docUri, item);
    }
    

    Aqui, é necessário um novo URI para identificar exclusivamente o documento a ser substituído, e ele é obtido usando o UriFactory.CreateDocumentUri e passando a ele os nomes de banco de dados e de coleção e a ID do documento.Here a new URI is needed to uniquely identify the document to replace and is obtained by using UriFactory.CreateDocumentUri and passing it the database and collection names and the ID of the document.

    O DocumentClient.ReplaceDocumentAsync substitui o documento identificado pelo URI por aquele especificado como um parâmetro.The DocumentClient.ReplaceDocumentAsync replaces the document identified by the URI with the one specified as a parameter.

  • A exclusão de um item é demonstrada com a função CosmosDBService.DeleteToDoItem na linha 115:Deleting an item is demonstrated with the CosmosDBService.DeleteToDoItem function on line 115:

    public async static Task DeleteToDoItem(ToDoItem item)
    {
        ...
        var docUri = UriFactory.CreateDocumentUri(databaseName, collectionName, item.Id);
    
        await docClient.DeleteDocumentAsync(docUri);
    }
    

    Anote novamente o URI exclusivo de documento que está sendo criado e passado para a função DocumentClient.DeleteDocumentAsync.Again note the unique document URI being created and passed to the DocumentClient.DeleteDocumentAsync function.

Execute o aplicativoRun the app

Agora, você atualizou o aplicativo com todas as informações necessárias para se comunicar com o Azure Cosmos DB.You've now updated your app with all the info it needs to communicate with Azure Cosmos DB.

As etapas a seguir demonstram como executar o aplicativo usando o depurador do Visual Studio para Mac.The following steps will demonstrate how to run the app using the Visual Studio for Mac debugger.

Observação

O uso do aplicativo de versão Android é exatamente o mesmo, e quaisquer diferenças serão indicadas nas etapas abaixo.Usage of the Android version app is exactly the same, any differences will be called out in the steps below. Se você deseja depurar com o Visual Studio no Windows, documente as tarefas pendentes para que elas possam ser encontradas pelo iOS aqui e pelo Android aqui.If you wish to debug with Visual Studio on Windows, documentation todo so can be found for iOS here and Android here.

  1. Primeiro, selecione a plataforma de destino desejada clicando no menu suspenso em destaque e selecionando a opção ToDoItems.iOS para iOS ou ToDoItems.Android para Android.First select the platform you wish to target by clicking on the dropdown highlighted and selecting either ToDoItems.iOS for iOS or ToDoItems.Android for Android.

    Selecionando uma plataforma para depurar no Visual Studio para Mac

  2. Para iniciar a depuração do aplicativo, pressione cmd+Enter ou clique no botão de execução.To start debugging the app, either press cmd+Enter or click the play button.

    Iniciando a depuração no Visual Studio para Mac

  3. Quando o simulador do iOS ou o emulador do Android concluir a inicialização, o aplicativo exibirá duas guias: para iOS, na parte inferior da tela; para Android, na parte superior da tela.When the iOS simulator or Android emulator finishes launching, the app will display 2 tabs at the bottom of the screen for iOS and the top of the screen for Android. A primeira mostra os itens de tarefas pendentes não concluídos; a segunda mostra os itens de tarefas pendentes concluídos.The first shows todo items which are not completed, the second shows todo items which are completed.

    Inicializar a tela do aplicativo de tarefas pendentes

  4. Para concluir um item de tarefas pendentes em iOS, deslize-o para a esquerda > toque no botão Concluir.To complete a todo item on iOS, slide it to the left > tap on the Complete button. Para concluir um item de tarefas pendentes em Android, pressione e segure o item > toque no botão Concluir.To complete a todo item on Android, long press the item > then tap on the complete button.

    Concluir um item de tarefas pendentes

  5. Para editar um item de tarefas pendentes > toque no item > uma nova tela é exibida, permitindo que você insira novos valores.To edit a todo item > tap on the item > a new screen appears letting you enter new values. Ao tocar no botão Salvar, serão mantidas as alterações no Azure Cosmos DB.Tapping the save button will persist the changes to Azure Cosmos DB.

    Editar um item de tarefas pendentes

  6. Para adicionar um item de tarefas pendentes > toque no botão Adicionar no canto superior direito da tela inicial > uma nova página de edição em branco será exibida.To add a todo item > tap on the Add button on the upper right of the home screen > a new, blank, edit page will appear.

    Adicionar um item de tarefas pendentes

Examinar SLAs no Portal do AzureReview SLAs in the Azure portal

O portal do Azure monitora a taxa de transferência, armazenamento, disponibilidade, latência e consistência da conta do Cosmos DB.The Azure portal monitors your Cosmos DB account throughput, storage, availability, latency, and consistency. Gráficos de métricas associados a um SLA (Contrato de Nível de Serviço) do Azure Cosmos DB mostram o valor do SLA em comparação com o desempenho real.Charts for metrics associated with an Azure Cosmos DB Service Level Agreement (SLA) show the SLA value compared to actual performance. Esse conjunto de métricas torna o monitoramento dos SLAs transparente.This suite of metrics makes monitoring your SLAs transparent.

Para examinar as métricas e os SLAs:To review metrics and SLAs:

  1. Selecione Métricas no menu de navegação da sua conta do Cosmos DB.Select Metrics in your Cosmos DB account's navigation menu.

  2. Selecione uma guia, tal como Latência, e selecione um período à direita.Select a tab such as Latency, and select a timeframe on the right. Comparar as linhas Real e SLA dos gráficos.Compare the Actual and SLA lines on the charts.

    Pacote de métricas do Azure Cosmos DB

  3. Examine as métricas nas outras guias.Review the metrics on the other tabs.

Limpar recursosClean up resources

Quando você concluir seu aplicativo Web e a conta do Azure Cosmos DB, poderá excluir os recursos do Azure criados para não incorrer em mais cobranças.When you're done with your web app and Azure Cosmos DB account, you can delete the Azure resources you created so you don't incur more charges. Para excluir os recursos:To delete the resources:

  1. No portal do Azure, selecione Grupos de recursos no canto esquerdo.In the Azure portal, select Resource groups on the far left. Se o menu esquerdo estiver recolhido, selecione Expandir botão para expandi-lo.If the left menu is collapsed, select Expand button to expand it.

  2. Selecione o grupo de recursos que você criou para este início rápido.Select the resource group you created for this quickstart.

    Métricas no portal do Azure

  3. Na nova janela, selecione Excluir grupo de recursos.In the new window, select Delete resource group.

    Métricas no portal do Azure

  4. Na próxima janela, digite o nome do grupo de recursos a ser excluído e selecione Excluir.In the next window, type the name of the resource group to delete, and then select Delete.

Próximas etapasNext steps

Neste início rápido, você aprendeu a criar uma conta do Azure Cosmos, criar um contêiner usando o Data Explorer e criar e implantar um aplicativo Xamarin.In this quickstart, you've learned how to create an Azure Cosmos account, create a container using the Data Explorer, and build and deploy a Xamarin app. Agora, você pode importar dados adicionais para sua conta do Azure Cosmos.You can now import additional data to your Azure Cosmos account.