Inicio rápido: Creación de una aplicación Xamarin.Forms con el SDL de .NET y la API de Azure Cosmos DB para MongoDB

SE APLICA A: Azure Cosmos DB API para MongoDB

Azure Cosmos DB es un servicio de base de datos con varios modelos y de distribución global de Microsoft. Puede crear rápidamente bases de datos de documentos, clave-valor y grafos, y realizar consultas en ellas. Todas las bases de datos se beneficiarán de las funcionalidades de distribución global y escala horizontal en Azure Cosmos DB.

En este artículo de inicio rápido se muestra cómo crear una cuenta de Cosmos configurada con la API de Azure Cosmos DB para MongoDB, una base de datos de documentos y una colección desde Azure Portal. Luego compilará una aplicación Xamarin.Forms de aplicación de tareas pendientes mediante el controlador .NET de MongoDB.

Requisitos previos para ejecutar la aplicación de ejemplo

Para ejecutar el ejemplo, necesitará Visual Studio o Visual Studio para Mac y una cuenta de Azure CosmosDB válida.

Si no tiene Visual Studio, descargue Visual Studio 2019 Community Edition con la carga de trabajo desarrollo móvil con .NET instalada con el programa de instalación.

Si prefiere trabajar en un equipo Mac, descargue Visual Studio para Mac y ejecute el programa de instalación.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Creación de una cuenta de base de datos

  1. En una nueva ventana del explorador, inicie sesión en Azure Portal.

  2. En el menú de la izquierda, seleccione Crear un recurso.

    Captura de pantalla de creación de un recurso en Azure Portal.

  3. En la página Nuevo, seleccione Bases de datos > Azure Cosmos DB.

    Captura de pantalla del de las bases de datos de Azure Portal

  4. En la págin Seleccionar opción de API, seleccione Azure Cosmos DB API para MongoDB > Crear.

    La API determina el tipo de cuenta que se va a crear. Seleccione Azure Cosmos DB API para Mongo DB, ya que va a crear una colección que funciona con MongoDB en este inicio rápido. Para más información, consulte Introducción a Azure Cosmos DB API para MongoDB.

    Captura de pantalla del panel de selección de la opción de API.

  5. En la página Crear una cuenta de Azure Cosmos DB, especifique la configuración de la nueva cuenta de Azure Cosmos DB.

    Configuración Value Descripción
    Suscripción Nombre de suscripción Seleccione la suscripción de Azure que quiere usar para esta cuenta de Azure Cosmos DB.
    Grupo de recursos Definición de un nombre de grupo de recursos Seleccione un grupo de recursos o seleccione Crear nuevo y escriba un nombre único para el grupo de recursos nuevo.
    Nombre de cuenta Escriba un nombre único. Escriba un nombre único para identificar la cuenta de Azure Cosmos DB. El URI de la cuenta será mongo.cosmos.azure.com y se anexará al nombre único de la cuenta.

    El nombre de la cuenta solo puede utilizar letras minúsculas, números y guiones (-), y debe tener entre 3 y 44 caracteres de longitud.
    Location Región más cercana a los usuarios Seleccione una ubicación geográfica para hospedar la cuenta de Azure Cosmos DB. Use la ubicación más cercana a los usuarios para que puedan acceder de la forma más rápida posible a los datos.
    Capacity mode (Modo de capacidad) Rendimiento aprovisionado o sin servidor Seleccione Provisioned throughput (Rendimiento aprovisionado) para crear una cuenta en modo de rendimiento aprovisionado. Seleccione Serverless (Sin servidor) para crear una cuenta en modo sin servidor.

    Nota: solo se admiten la versiones 4 y 3.6 de MongoDB API en las cuentas sin servidor. Si elige la versión 3.2, se forzará la cuenta al modo de rendimiento aprovisionado.
    Aplicar el descuento del nivel Gratis de Azure Cosmos DB Aplicar o No aplicar Con el nivel Gratis de Azure Cosmos DB, recibirá los primeros 1000 RU/s y 25 GB de almacenamiento gratis en una cuenta. Más información acerca del nivel Gratis.
    Versión Elección de la versión de servidor necesaria La API de Azure Cosmos DB para MongoDB es compatible con la versión 4.0, 3.6 y 3.2 del servidor. Puede actualizar o degradar una cuenta después de crearla.

    Nota

    Puede tener una cuenta de Azure Cosmos DB de nivel Gratis por cada suscripción de Azure y debe optar por tenerla al crear la cuenta. Si no ve la opción para aplicar el descuento por nivel Gratis, significará que en otra cuenta de la suscripción ya se ha habilitado el nivel Gratis.

    Captura de pantalla de la página de nueva cuenta de Azure Cosmos DB.

  6. En la pestaña Distribución global, configure los detalles siguientes. Puede dejar los valores predeterminados para este inicio rápido:

    Configuración Value Descripción
    Redundancia geográfica Deshabilitar Habilite o deshabilite la distribución global en su cuenta. Para ello, debe emparejar su región con una región de par. Puede agregar más regiones a su cuenta más adelante.
    Escrituras en varias regiones Deshabilitar La funcionalidad de escrituras en varias regiones le permite aprovechar el rendimiento aprovisionado para sus bases de datos y contenedores de todo el mundo.

    Nota

    Las siguientes opciones no están disponibles si selecciona Serverless (Sin servidor) en Capacity mode (Modo de capacidad):

    • Aplicación de descuento por nivel Gratis
    • Redundancia geográfica
    • Escrituras en varias regiones
  7. Opcionalmente, puede configurar detalles adicionales en las pestañas siguientes:

    • Redes: configure el acceso desde una red virtual.
    • Directiva de copia de seguridad: configure una directiva de copia de seguridad periódica o continua.
    • Cifrado: use una clave administrada por el servicio o una clave administrada por el cliente.
    • Etiquetas: son pares nombre-valor que permiten categorizar los recursos y ver una facturación consolidada mediante la aplicación de la misma etiqueta en varios recursos y grupos de recursos.
  8. Seleccione Revisar + crear.

  9. La cuenta tarda unos minutos en crearse. Espere a que el portal muestre la página ¡Enhorabuena! La cuenta de Azure Cosmos DB API para MongoDB está lista.

    Captura de pantalla del panel de notificaciones de Azure Portal.

El ejemplo que se describe en este artículo es compatible con la versión 2.6.1 de MongoDB.Driver.

Clonación de la aplicación de ejemplo

En primer lugar, descargue la aplicación de ejemplo de GitHub. Implementa una aplicación de tareas pendientes con el modelo de almacenamiento de documentos de MongoDB.

  1. En Windows, abra un símbolo del sistema o, en Mac, abra Terminal, cree una nueva carpeta denominada git-samples y, a continuación, cierre la ventana.

    md "C:\git-samples"
    
    mkdir '$home\git-samples\
    
  2. Abra una ventana de terminal de Git, como git bash y utilice el comando cd para cambiar a la nueva carpeta para instalar la aplicación de ejemplo.

    cd "C:\git-samples"
    
  3. Ejecute el comando siguiente para clonar el repositorio de ejemplo. Este comando crea una copia de la aplicación de ejemplo en el equipo.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-xamarin-getting-started.git
    

Si no desea usar git, también puede descargar el proyecto como un archivo ZIP

Revisión del código

Este paso es opcional. Si está interesado en aprender cómo se crean los recursos de base de datos en el código, puede revisar los siguientes fragmentos de código. En caso contrario, puede ir directamente a Actualización de la cadena de conexión.

Todos los fragmentos de código siguiente se toman de la clase MongoService, que se encuentra en la ruta de acceso siguiente: src/TaskList.Core/Services/MongoService.cs.

  • Inicialice Mongo Client.

    MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl(APIKeys.ConnectionString));
    
    settings.SslSettings = new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
    
    settings.RetryWrites = false;
    
    MongoClient mongoClient = new MongoClient(settings);
    
  • Recupere una referencia a la base de datos y la colección. El SDK de .NET de MongoDB creará automáticamente tanto la base de datos como la colección si todavía no existen.

    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 los documentos como una lista.

    var allTasks = await TasksCollection
                    .Find(new BsonDocument())
                    .ToListAsync();
    
  • Consulta de documentos determinados.

    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;
    }
    
  • Cree una tarea e insértela en la colección.

    public async Task CreateTask(MyTask task)
    {
        await TasksCollection.InsertOneAsync(task);
    }
    
  • Actualice una tarea de una colección.

    public async Task UpdateTask(MyTask task)
    {
        await TasksCollection.ReplaceOneAsync(t => t.Id.Equals(task.Id), task);
    }
    
  • Elimine una tarea de una colección.

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

Actualización de la cadena de conexión

Ahora vuelva a Azure Portal para obtener la información de la cadena de conexión y cópiela en la aplicación.

  1. En Azure Portal, en la cuenta de Azure Cosmos DB, en el panel de navegación izquierdo, haga clic en Cadena de conexión y en Claves de lectura y escritura. Usará los botones de copia que están en el lado derecho de la pantalla para copiar la cadena de conexión principal en los pasos siguientes.

  2. Abra el archivo APIKeys.cs en el directorio Helpers (Aplicaciones auxiliares) del proyecto TaskList.Core.

  3. Copie el valor de la cadena de conexión principal del portal (con el botón de copia) y conviértalo en el valor del campo ConnectionString en el archivo APIKeys.cs.

  4. Quite &replicaSet=globaldb de la cadena de conexión. Obtendrá un error en tiempo de ejecución si no quita ese valor de la cadena de consulta.

Importante

Debe quitar el par clave-valor &replicaSet=globaldb de la cadena de consulta de la cadena de conexión para evitar un error en tiempo de ejecución.

Ya ha actualizado la aplicación con toda la información que necesita para comunicarse con Azure Cosmos DB.

Ejecución la aplicación

Visual Studio 2019

  1. En Visual Studio, haga clic con el botón derecho en cada proyecto en el Explorador de soluciones y, después, haga clic en Administrar paquetes NuGet.
  2. Haga clic en Restore all NuGet packages (Restaurar todos los paquetes NuGet).
  3. Haga clic con el botón derecho en TaskList.Android y seleccione Establecer como proyecto de inicio.
  4. Presione F5 para iniciar la depuración de la aplicación.
  5. Si quiere ejecutar en iOS, primero asegúrese de que la máquina esté conectada a un equipo Mac (aquí hay algunas instrucciones sobre cómo hacerlo).
  6. Haga clic con el botón derecho en el proyecto TaskList.iOS y seleccione Establecer como proyecto de inicio.
  7. Haga clic en F5 para iniciar la depuración de la aplicación.

Visual Studio para Mac

  1. En la lista desplegable de plataforma, seleccione TaskList.iOS o TaskList.Android, en función de la plataforma en que quiere realizar la ejecución.
  2. Presione cmd+Entrar para empezar a depurar la aplicación.

Revisión de los SLA en Azure Portal

Azure Portal supervisa el rendimiento, capacidad de almacenamiento, disponibilidad, latencia y coherencia de su cuenta de Cosmos DB. Los gráficos de las métricas asociadas con un Acuerdo de Nivel de Servicio (SLA) de Azure Cosmos DB muestran el rendimiento real en comparación con el valor de este acuerdo. Este conjunto de métricas hace que la supervisión de los Acuerdos de Nivel de Servicio sea transparente.

Para revisar las métricas y los Acuerdos de Nivel de Servicio:

  1. Seleccione Métricas en el menú de navegación de la cuenta de Cosmos DB.

  2. Seleccione una pestaña como Latencia y seleccione un período de tiempo a la derecha. Compare las líneas Real y SLA de los gráficos.

    Conjunto de métricas de Azure Cosmos DB

  3. Revise las métricas de las otras pestañas.

Limpieza de recursos

Cuando haya terminado tanto con la aplicación como con la cuenta de Azure Cosmos DB, puede eliminar los recursos de Azure que creó para no tener más gastos. Para eliminar los recursos:

  1. En la barra de búsqueda de Azure Portal, busque y seleccione Grupos de recursos.

  2. En la lista, seleccione el grupo de recursos que creó para este inicio rápido.

    Selección del grupo de recursos que se eliminará

  3. En la página Información general del grupo de recursos, seleccione Eliminar grupo de recursos.

    Eliminar el grupo de recursos

  4. En la ventana siguiente, escriba el nombre del grupo de recursos que desea eliminar y, después, seleccione Eliminar.

Pasos siguientes

En esta guía de inicio rápido, ha aprendido a crear una cuenta de Azure Cosmos DB y ejecutar una aplicación Xamarin.Forms con la API para MongoDB. Ahora puede importar datos adicionales en la cuenta de Cosmos DB.

¿Intenta planear la capacidad para una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.