Novedades para desarrolladores: La versión 3 del SDK de .NET de Azure Cosmos DB ya está disponible

Publicado el 13 agosto, 2019

Program Manager, Azure Cosmos DB

El equipo de Azure Cosmos DB anuncia la disponibilidad general de la versión 3 del SDK de .NET Azure Cosmos DB, lanzado en julio. Gracias a todos los que enviaron sus comentarios durante la versión preliminar. 

En esta publicación, explicamos las últimas actualizaciones que realizamos para mejorar la experiencia de los desarrolladores en la versión 3 del SDK de .NET.

Puede obtener la última versión a través del SDK a través de NuGet y contribuir en GitHub.

//Uso de CLI de .NET
dotnet add package Microsoft.Azure.Cosmos

//Uso de NuGet
Install-Package Microsoft.Azure.Cosmos

¿Qué es Azure Cosmos DB?

Azure Cosmos DB es un servicio de base de datos multimodelo distribuido globalmente que permite leer y escribir datos de cualquier región de Azure. Ofrece distribución global inmediata, garantiza latencias de menos de 10 milisegundos en el percentil 99, alta disponibilidad de un 99,999 % y escalado elástico del procesamiento y el almacenamiento.

¿Cuáles son las novedades de la versión 3 del SDK de .NET de Azure Cosmos DB?

La versión 3 del SDK contiene diversas mejoras al rendimiento y el uso, como un modelo nuevo de programación intuitivo, soporte para API de flujo, soporte incorporado para API de procesador de fuente de cambios, capacidad para escalar contenedores sin particiones, y mucho más. El SDK se dirige a .NET Standard 2.0 y es de código abierto en GitHub.

Para cargas de trabajo nuevas, recomendamos empezar con la última versión 3.x del SDK para tener una experiencia óptima. No existen planes inmediatos para eliminar la versión 2.x del SDK de .NET.

Dirigido a .NET Standard 2.0

Hemos unificado los SDK actuales de .NET Core y .NET Framework de Azure Cosmos DB en un único SDK dirigido a .NET Standard 2.0. Ahora puede utilizar el SDK para .NET en cualquier plataforma que implemente .NET Standard 2.0, incluidas las aplicaciones de .NET Framework 4.6.1+ como de .NET Core 2.0+.

Código abierto en GitHub

La versión 3 del SDK de .NET de Azure Cosmos DB es de código abierto, y nuestro equipo tiene planeado realizar el desarrollo de esta forma. Con ese objetivo, agradecemos todas las solicitudes de incorporación de cambios y registraremos las incidencias y realizaremos seguimiento de los comentarios en GitHub.

Nuevo modelo de programación con una superficie de API fluida

Desde la versión preliminar, hemos seguido mejorando el modelo del objeto para que el desarrollador tenga una experiencia más intuitiva. Creamos una nueva clase de primer nivel de CosmosClient para reemplazar DocumentClient y dividir sus métodos en las clases modulares base de datos y contenedor. En nuestros estudios de uso, hemos observado que esta jerarquía les facilita a los desarrolladores conocer y descubrir la superficie de la API.

También agregamos API fluidas de generador, lo que facilita crear clases CosmosClient, Contenedor y ChangeFeedProcessor con opciones personalizadas.

Vea todos los ejemplos en GitHub.

API de flujo para alto rendimiento

Las versiones anteriores de los SDK de .NET de Azure Cosmos DB siempre serializaban y deserializaban los datos que llegaban o salían de la red. En el contexto de una ASP.NET Web API, esto puede generar una sobrecarga del rendimiento. Ahora, con la nueva API de flujo, cuando lea un elemento o una consulta, puede obtener el flujo y pasarlo a la respuesta sin la sobrecarga de la deserialización, usando los nuevos métodos GetItemQueryStreamIterator y ReadItemStreamAsync . Para obtener más información, consulte los ejemplos de GitHub.

Más fácil de probar y más extensible

En la versión 3 de SDK de .NET, todas las API se pueden simular, lo que permite una prueba unitaria más sencilla.

También incorporamos una canalización de solicitud extensible, con el fin de que pueda pasar controladores personalizados que se ejecutarán cuando envíe solicitudes al servicio. Por ejemplo, puede usar estos controladores para registrar información de solicitudes en Azure Application Insights, definir directivas personalizadas de reintento y mucho más. Ahora también puede pasar un serializador personalizado, otra característica que solicitan frecuentemente los desarrolladores.

Utilice las API del Procesador de fuente de cambios directamente del SDK

Una de las característica más populares de Azure Cosmos DB es la fuente de cambios, que suele usarse en arquitecturas de origen de eventos, procesamiento de flujo, escenarios de movimiento de datos y para crear vistas materializadas. Con la fuente de cambios, puede escuchar los cambios que se realizan en un contenedor y obtener una fuente incremental de sus registros a medida que se crean o actualizan.

El nuevo SDK tiene soporte integrado para las API del Procesador de fuente de cambios, lo que significa que puede usar el mismo SDK para crear su aplicación y realizar la implementación del procesador de fuente de cambios. Antes tenía que usar la biblioteca independiente del procesador de fuente de cambios.

Para comenzar, consulte la documentación “Procesador de la fuente de cambios en Azure Cosmos DB”.

Capacidad de escalar contenedores sin particiones

Muchos clientes nos han comentado que tienen contenedores sin particiones o “fijos” que desean escalar más allá de los 10 GB de almacenamiento y del límite de rendimiento de 10 000 RU/s aprovisionado. Con la versión 3 del SDK, ya puede hacerlo sin tener que crear un nuevo contenedor y migrar sus datos.

Todos los contenedores sin particiones ahora tienen una clave de partición del sistema “_partitionKey” que puede establecer en un valor cuando escriba elementos nuevos. Una vez que comience a usar el valor _partitionKey, Azure Cosmos DB escalará su contenedor ya que el volumen de almacenamiento aumentará a más de 10 GB. Si desea mantener su contenedor como está, puede usar el valor PartitionKey.None para leer y escribir los datos existentes sin una clave de partición.

API para el escalado del rendimiento

Hemos rediseñado las API para aumentar y disminuir el rendimiento aprovisionado (RU/s). Ahora puede usar el método ReadThroughputAsync para obtener el rendimiento actual y el método ReplaceThroughputAsync cambiarlo. Vea el ejemplo.

Introducción

Para comenzar a usar la versión 3 de SDK de .NET de Azure Cosmos DB, agregue nuestro nuevo paquete de NuGet a su proyecto. Si desea empezar, siga el nuevo tutorial y la guía de inicio rápido. Nos encantaría conocer su opinión. Puede registrar cualquier problema en nuestro repositorio de GitHub.

Para mantenerse al día respecto a las novedades y características más recientes de Azure #CosmosDB, síganos en Twitter @AzureCosmosDB. Deseamos ver lo que va a crear con Azure Cosmos DB y el nuevo SDK de .NET.