Início Rápido: Compilar um aplicativo do Xamarin.Forms com o SDK do .NET e a API para MongoDB do Azure Cosmos DBQuickStart: Build a Xamarin.Forms app with .NET SDK and Azure Cosmos DB's API for MongoDB

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.

Este início rápido demonstra como criar uma conta do Cosmos configurada com a API para MongoDB 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 a Cosmos account configured with Azure Cosmos DB's API for MongoDB, document database, and collection using the Azure portal. Você criará um aplicativo de tarefas pendentes do Xamarin.Forms usando o driver .NET do MongoDB.You'll then build a todo app Xamarin.Forms app by using the MongoDB .NET driver.

Pré-requisitos para executar o aplicativo de exemploPrerequisites to run the sample app

Para executar o exemplo, você precisará do Visual Studio ou do Visual Studio para Mac e uma conta válida do Azure CosmosDB.To run the sample, you'll need Visual Studio or Visual Studio for Mac and a valid Azure CosmosDB account.

Caso ainda não tenha o Visual Studio, baixe o Visual Studio 2019 Community Edition com a carga de trabalho Desenvolvimento móvel com .NET inserida na instalação.If you don't already have Visual Studio, download Visual Studio 2019 Community Edition with the Mobile development with .NET workload installed with setup.

Se você preferir trabalhar em um Mac, baixe o Visual Studio para Mac e execute a instalação.If you prefer to work on a Mac, download Visual Studio for Mac and run the setup.

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.

Criar uma conta de banco de dadosCreate a database account

  1. Em uma nova janela, entre no portal do Azure.In a new window, sign in to the Azure portal.

  2. No menu à esquerda, selecione Criar um recurso, Bancos de dados e em Azure Cosmos DB, selecione Criar.In the left menu, select Create a resource, select Databases, and then under Azure Cosmos DB, select Create.

    Captura de tela do portal do Azure, realçando Mais Serviços e Azure Cosmos DB

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

    ConfiguraçãoSetting ValorValue DESCRIÇÃODescription
    SubscriptionSubscription Sua assinaturaYour subscription Selecione a assinatura do Azure que você deseja usar para essa conta do Azure Cosmos DB.Select the Azure subscription that you want to use for this Azure Cosmos DB account.
    Grupo de recursosResource Group Criar NovoCreate new

    Em seguida, insira o mesmo nome exclusivo fornecido na IDThen enter the same unique name as provided in ID
    Selecione Criar novo.Select Create new. Insira o novo nome do grupo de recursos para sua conta.Then enter a new resource-group name for your account. Para simplificar, use um nome igual à sua ID.For simplicity, use the same name as your ID.
    Nome da contaAccount Name Insira um nome exclusivoEnter a unique name Insira um nome exclusivo para identificar a conta do Azure Cosmos DB.Enter a unique name to identify your Azure Cosmos DB 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 deve conter apenas letras minúsculas, números e o caractere de hífen (-).The ID can use only lowercase letters, numbers, and the hyphen (-) character. Ela precisa ter entre 3 e 31 caracteres.It must be between 3 and 31 characters in length.
    APIAPI API do Azure Cosmos DB para MongoDBAzure Cosmos DB's API for MongoDB 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: Core (SQL) para bancos de dados de documentos, Gremlin para o bancos de dados de grafos, API para MongoDB do Azure Cosmos DB para bancos de dados de documentos, Tabela do Azure e Cassandra.Azure Cosmos DB provides five APIs: Core (SQL) for document databases, Gremlin for graph databases, Azure Cosmos DB's API MongoDB for document databases, 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 MongoDB, porque neste guia de início rápido você está criando uma tabela que funciona com o MongoDB.Select MongoDB because in this quickstart you are creating a table that works with the MongoDB.
    LocationLocation 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 o local mais próximo dos usuários para fornecer a eles acesso mais rápido aos dados.Use the location that's closest to your users to give them the fastest access to the data.

    Selecione Revisar + Criar.Select Review+Create. Você pode ignorar as seções Rede e Marcas.You can skip the Network and Tags section.

    A página da nova conta do Azure Cosmos DB

  4. A criação da conta leva alguns minutos.The account creation takes a few minutes. Aguarde até que o portal exiba a página Parabéns! Sua conta do Cosmos com a compatibilidade de protocolo de transmissão para o MongoDB está pronta.Wait for the portal to display the Congratulations! Your Cosmos account with wire protocol compatibility for MongoDB is ready page.

    O painel Notificações do portal do Azure

O exemplo descrito neste artigo é compatível com MongoDB.Driver versão 2.6.1.The sample described in this article is compatible with MongoDB.Driver version 2.6.1.

Clonar o aplicativo de exemploClone the sample app

Primeiro, baixe o aplicativo de exemplo do GitHub.First, download the sample app from GitHub. Ele implementa uma aplicativo de tarefas com o modelo de armazenamento de documentos do MongoDB.It implements a todo app with MongoDB's document storage model.

  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-mongodb-xamarin-getting-started.git
    

Se não quiser usar o git, você também pode baixar o projeto como um arquivo ZIPIf you don't wish to use git, you can also download the project as a ZIP file

Examine o códigoReview the code

Esta etapa é opcional.This step is optional. Se você estiver interessado em aprender como os recursos de banco de dados são criados no código, poderá examinar os snippets de código a seguir.If you're interested in learning how the database resources are created in the code, you can review the following snippets. Caso contrário, você poderá pular para Atualizar sua cadeia de conexão.Otherwise, you can skip ahead to Update your connection string.

Os trechos de código a seguir foram todos obtidos da classe MongoService, encontrada no seguinte caminho: src/TaskList.Core/Services/MongoService.cs.The following snippets are all taken from the MongoService class, found at the following path: src/TaskList.Core/Services/MongoService.cs.

  • Inicialize o cliente Mongo.Initialize the Mongo Client.

    MongoClientSettings settings = MongoClientSettings.FromUrl(
        new MongoUrl(APIKeys.ConnectionString)
    );
    
    settings.SslSettings =
        new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
    
    MongoClient mongoClient = new MongoClient(settings);
    
  • Recupere uma referência ao banco de dados e á coleção.Retrieve a reference to the database and collection. O SDK .NET do MongoDB criará automaticamente o banco de dados e a coleção, se eles ainda não existirem.The MongoDB .NET SDK will automatically create both the database and collection if they do not already exist.

    string dbName = "MyTasks";
    string collectionName = "TaskList";
    
    var db = mongoClient.GetDatabase(dbName);
    
    var collectionSettings = new MongoCollectionSettings {
        ReadPreference = ReadPreference.Nearest
    };
    
    tasksCollection = db.GetCollection<MyTask>(collectionName, collectionSettings);
    
  • Recupere todos os documentos como uma lista.Retrieve all documents as a List.

    var allTasks = await TasksCollection
                    .Find(new BsonDocument())
                    .ToListAsync();
    
  • Consulte documentos específicos.Query for particular documents.

    public async Task<List<MyTask>> GetIncompleteTasksDueBefore(DateTime date)
    {
        var tasks = await TasksCollection
                        .AsQueryable()
                        .Where(t => t.Complete == false)
                        .Where(t => t.DueDate < date)
                        .ToListAsync();
    
        return tasks;
    }
    
  • Crie uma tarefa e a insira na coleção.Create a task and insert it into the collection.

    public async Task CreateTask(MyTask task)
    {
        await TasksCollection.InsertOneAsync(task);
    }
    
  • Atualize uma tarefa em uma coleção.Update a task in a collection.

    public async Task UpdateTask(MyTask task)
    {
        await TasksCollection.ReplaceOneAsync(t => t.Id.Equals(task.Id), task);
    }
    
  • Exclua uma tarefa de uma coleção.Delete a task from a collection.

    public async Task DeleteTask(MyTask task)
    {
        await TasksCollection.DeleteOneAsync(t => t.Id.Equals(task.Id));
    }
    

Atualizar sua cadeia de conexãoUpdate your connection string

Agora, volte ao Portal do Azure para obter informações sobre a cadeia de conexão e copiá-las para o aplicativo.Now go back to the Azure portal to get your connection string information and copy it into the app.

  1. No Portal do Azure, na sua conta do Azure Cosmos DB, no painel de navegação esquerdo, clique em Cadeia de Conexão e, em seguida, clique em Chaves de leitura/gravação.In the Azure portal, in your Azure Cosmos DB account, in the left navigation click Connection String, and then click Read-write Keys. Você usará os botões de cópia no lado direito da tela para copiar a Cadeia de Conexão Primária nas próximas etapas.You'll use the copy buttons on the right side of the screen to copy the Primary Connection String in the next steps.

  2. Abra o arquivo APIKeys.cs no diretório Auxiliares do projeto TaskList.Core.Open the APIKeys.cs file in the Helpers directory of the TaskList.Core project.

  3. Copie o valor da sua cadeia de conexão primária no portal (usando o botão de cópia) e transforme-o no valor do campo ConnectionString em seu arquivo APIKeys.cs.Copy your primary connection string value from the portal (using the copy button) and make it the value of the ConnectionString field in your APIKeys.cs file.

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.

Execute o aplicativoRun the app

Visual Studio 2019Visual Studio 2019

  1. No Visual Studio, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e clique em Gerenciar Pacotes NuGet.In Visual Studio, right-click on each project in Solution Explorer and then click Manage NuGet Packages.
  2. Clique em Restaurar todos os pacotes NuGet.Click Restore all NuGet packages.
  3. Clique com botão direito em TaskList.Android e selecione Definir como projeto de inicialização.Right click on the TaskList.Android and select Set as startup project.
  4. Pressione F5 para iniciar a depuração do aplicativo.Press F5 to start debugging the application.
  5. Se você quiser executar no iOS, primeiro seu computador está conectado a um Mac (confira estas instruções sobre como fazer isso).If you want to run on iOS, first your machine is connected to a Mac (here are instructions on how to do so).
  6. Clique com botão direito no projeto TaskList.Android e selecione Definir como projeto de inicialização.Right click on TaskList.iOS project and select Set as startup project.
  7. Clique em F5 para começar a depuração do aplicativo.Click F5 to start debugging the application.

Visual Studio para MacVisual Studio for Mac

  1. Na lista suspensa de plataformas, selecione TaskList.iOS ou TaskList.Android, dependendo da plataforma na qual você queira executar.In the platform dropdown list, select either TaskList.iOS or TaskList.Android, depending which platform you want to run on.
  2. Pressione cmd+Enter para começar a depuração do aplicativo.Press cmd+Enter to start debugging the application.

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, insira o nome do grupo de recursos a ser excluído e selecione Excluir.In the next window, enter the name of the resource group to delete, and then select Delete.

Próximas etapasNext steps

Neste início rápido, você aprendeu como criar uma conta do Azure Cosmos DB e executar um aplicativo Xamarin.Forms usando a API para MongoDB.In this quickstart, you've learned how to create an Azure Cosmos DB account and run a Xamarin.Forms app using the API for MongoDB. Agora, é possível importar outros dados para sua conta do Cosmos DB.You can now import additional data to your Cosmos DB account.