• 3 min read

SDK de Azure Cosmos DB para .NET 3.0 en versión preliminar pública

El equipo de Azure Cosmos DB está encantado de anunciar la versión 3.0 del SDK para .NET, que ya está en versión preliminar pública y con código abierto en GitHub.

El equipo de Azure Cosmos DB está encantado de anunciar la versión 3.0 del SDK para .NET, que ya está en versión preliminar pública y con código abierto en GitHub.

Nos gustaría recibir sus comentarios, así que le agradecemos que lo pruebe y nos dé su opinión. Puede obtener la última versión a través de NuGet y contribuir en GitHub.

Install-Package Microsoft.Azure.Cosmos -Version 3.0.0.1-preview –prerelease

¿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 y escalado elástico del procesamiento y el almacenamiento.

¿Que novedades incluye la versión 3.0 del SDK para .NET?

La versión 3.0 del SDK es para .NET Standard 2.0 e incluye numerosas mejoras de uso y rendimiento, como un nuevo modelo de objetos más intuitivo y funcionalidad de flujos. El SDK se une también a los SDK para Java, JavaScript y Python porque es de código abierto y está disponible en GitHub.

Esta es una versión preliminar del SDK de la versión 3.0, por lo que recomendamos seguir utilizando la versión 2.x del SDK para .NET en las cargas de trabajo de producción. Actualmente no tenemos planes inmediatos de dejar de usar o retirar la compatibilidad con la versión 2.x del SDK para .NET.

Dirigido a .NET Standard 2.0

Hemos unificado los SDK actuales para .NET y .NET Core en un único SDK dirigido a .NET Standard 2.0. Esto significa que ahora puede utilizar el SDK para .NET en aplicaciones tanto de .NET Framework 4.6.1+ como de .NET Core 2.0+.

Modelo de programación intuitivo

A lo largo de los últimos meses, nuestro equipo ha estado trabajando en mejorar la experiencia de desarrollo de los SDK de Azure Cosmos DB de acuerdo con los comentarios que hemos recibido de los usuarios.

Nueva superficie de API fluida

Hemos creado una nueva clase CosmosClient de primer nivel para reemplazar DocumentClient y hemos dividido sus métodos en las clases modulares CosmosDatabase, CosmosContainer y CosmosItems. El nuevo modelo de programación evita la necesidad de utilizar UriFactory y otro “ruido” del código de las aplicaciones.

Nuestros estudios de uso muestran que la jerarquía facilita a los nuevos desarrolladores saber qué paso es el siguiente. Los tipos modulares CosmosDatabase y CosmosContainer también facilitan la inyección de dependencias. Ahora puede pasar fácilmente el contexto de una base de datos o de un contenedor en una aplicación, si necesidad de pasar los nombres del cliente, la base de datos o el contenedor.

Más fácil de probar

En respuesta a numerosas solicitudes por parte de los desarrolladores, se han facilitado las pruebas unitarias con el nuevo modelo de programación jerárquico, donde todos los tipos se pueden hacer ficticios. También hemos introducido extensibilidad de middleware con CosmosConfiguration.AddCustomHandlers(), que permite conectarse a la canalización de solicitud-respuesta del SDK.

Cambios de nomenclatura

Hemos realizado algunos cambios de nomenclatura para que el SDK esté más en línea con el modelo de recursos de Azure Cosmos DB. Puesto que Azure Cosmos DB admite varios modelos de datos, vamos a cambiar los nombres Colección y Documento a Contenedor y Elemento, que son nombres más genéricos, en todos los SDK.

Mejoras en el rendimiento

Las versiones anteriores de los SDK siempre serializaban y deserializaban los datos que llegaban o salían de la red. En muchos casos, esto es innecesario y da lugar a una sobrecarga del rendimiento. Ahora, cuando lea un elemento o una consulta en el contexto de ASP.NET Web API, puede simplemente obtener el flujo y pasarlo a la respuesta sin la sobrecarga de la serialización, usando los nuevos métodos ReadItemAsStreamAsync y CreateItemQueryAsStream.

Menos dependencia de dynamic

Con el nuevo SDK, puede continuar usando dynamic, pero ya no inyectamos nuestro propio tipo dynamic. También hemos quitado los casos de deserialización doble que tenía el SDK 2.x.x.

Control de excepciones optimizado

Las excepciones de serialización en llamadas await asincrónicas pueden resultar caras. El nuevo SDK continúa produciendo excepciones para el modelo de programación con tipos como esperan los desarrolladores. Sin embargo, para el modelo de programación por flujos, se da un código de estado CosmosResponseMessage.StatusCode para cualquier respuesta que devuelva el servidor. El SDK solo produce excepciones para errores que dan lugar a que no se devuelva ninguna respuesta, lo que permite un control más preciso del uso de excepciones en aplicaciones sensibles al rendimiento.

Código abierto

Ahora el SDK de Azure Cosmos DB para .NET es de código abierto Registraremos los problemas, haremos un seguimiento de los comentarios y aceptaremos solicitudes de incorporación de cambios en GitHub.

Preguntas más frecuentes sobre las características en versión preliminar

En esta versión preliminar, se incluyen varias características que aún no están en funcionamiento. Entre ellas, están las siguientes:

  • Compatibilidad con LINQ
  • Funciones (UDF) y desencadenadores definidos por el usuario
  • Usuarios y permisos
  • Fuente de cambios

La funcionalidad de estas características estará disponible en una próxima versión.

Introducción

Para comenzar a usar el nuevo SDK, debe agregar un nuevo paquete NuGet a un proyecto. Siga nuestros nuevos tutoriales de .NET y .NET Core. Nos encantaría conocer su opinión. Envíe un correo electrónico a la dirección askcosmosdb@microsoft.com o registre los problemas 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. Realmente nos interesa conocer qué compiló con Azure Cosmos DB.