.NET

Ya está disponible el SDK .NET 2.3.3 de Couchbase.

Ya está disponible el SDK .NET 2.3.3 de Couchbase.

Hoy lanzamos una versión de mantenimiento y corrección de errores del SDK .NET de Couchbase. Esta es la continuación de las versiones 2.3.0 y 2.3.1 (no hay versión 2.3.2) y le sugerimos que actualice en consecuencia. Aunque en gran medida se trata de una versión de corrección de errores, hay un par de nuevas características menores que estamos lanzando, así como un cambio de nombre de la API que hace que los métodos más antiguos sean obsoletos.

Novedades y cambios

Métodos asíncronos por lotes

Hemos añadido una nueva API de métodos asíncronos para ejecutar por lotes una serie de operaciones sobre documentos JSON. Estos métodos permiten utilizar el conocido paradigma async/await para ejecutar una lista de operaciones de forma no bloqueante:

Observe que en este ejemplo especificamos que el tipo genérico T es un objeto. De este modo, podemos combinar documentos de distintos tipos; si restringiéramos T a un tipo más específico, todos los documentos del lote tendrían que ser del mismo tipo.

Estos métodos se han añadido para las siguientes operaciones:

  • GetDocumentsAsync: obtener un conjunto de documentos dado un conjunto de claves
  • UpsertAsync: actualiza un conjunto existente de documentos o los inserta si no existen.
  • InsertAsync: inserta un conjunto de documentos que fallan si existen
  • RemoveASync: eliminar un conjunto de documentos
  • ReplaceAsync: reemplaza un conjunto de documentos, fallando si no existen.

Permitir la configuración programática de los servicios IO

Hace algún tiempo, lanzamos un nuevo proveedor IO llamado MUX IOSin embargo, sólo soportábamos la configuración a través de archivos App.config o Web.config. Ahora puede programar su servicio IO:

Muchas gracias a los miembros de la comunidad Petr Drastil ¡por enviar un PR para esta función!

Actualizar el paquete NewtonSoft a 8.0.3

Por fin hemos actualizado de la versión 6.0.8 a la 8.0.3, en gran parte para dar soporte a un serializador JSON compatible con .NET Core.

Cambiar el nombre de GetWithLock por GetAndLock

Esto se hizo para que pudiéramos tener cierta consistencia entre los distintos SDKs de Couchbase (Java, PHP, etc). Todos los métodos GetWithLock han sido marcados como "obsoletos" usando el ObsoleteAttribute .aspx). Si utiliza estos métodos, recibirá una advertencia del compilador. Tenga en cuenta que estos métodos no se eliminarán hasta que se publique una versión mayor (3.x por ejemplo) del SDK.

Soporte IPv6

Ahora puedes establecer una configuración global para que el cliente utilice sólo entradas IPv6 cuando resuelva un Nombre de Dominio Completamente Cualificado (FQDN). Yo diría que se trata de una función "experimental", en el sentido de que no se ha probado exhaustivamente, por lo que ¡ caveat emptor! A menos que estés usando una red IPv6 pura, yo me sentaría lejos de esta característica.

Problemas conocidos

Hay un problema conocido que se descubrió tarde en las pruebas; los comandos Sub-Document pueden fallar con una NotImplementedException durante escenarios de failover/swap/rebalance. Este problema se solucionará en una versión posterior; puede obtener más información al respecto en Jira.

Notas de la versión - Couchbase .NET client library - Versión 2.3.3

  • [NCBC-1127] - Exponer CAS en fragmentos de documentos
  • [NCBC-1143] - Subdocument Exists siempre devuelve true
  • [NCBC-1146] - sustituir GetWithLock por GetAndLock
  • [NCBC-1148] - MemcachedBucket.CreateManager lanza NotSupportedException
  • [NCBC-1149] - Corrección de un problema en el recuento de referencias de cubos
  • [NCBC-1151] - Subdocumento - El reemplazo singular siempre falla
  • [NCBC-1154] - Llamar a ToString en QueryResult puede lanzar NRE
  • [NCBC-1092] - Actualizar la dependencia de NewtonSoft a 8.x
  • [NCBC-1116] - Añadir métodos async/await para operaciones masivas
  • [NCBC-1118] - Permitir la configuración programática de los servicios IO
  • [NCBC-1087] - Soporte de IPv6 en la configuración de clientes
  • [NCBC-1150] - Subdocumento - La búsqueda falla al obtener un subdocumento jerárquico

Agradecimientos especiales

Un agradecimiento especial a todos los miembros de la comunidad que han contribuido a esta versión, ya sea aportando una pull-request, respondiendo o haciendo una pregunta en los foros o creando un informe de error o una solicitud de función en jira, en particular Brant Burnett de CenterEdge Software.

Cómo conseguirlo

El SDK puede descargarse directamente, a través de NuGet, o clonando y extrayendo el repositorio de Github:

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Jeff Morris, Ingeniero Superior de Software, Couchbase

Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pasó seis años en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de cómo integrarse con N1QL (lenguaje de consulta).

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.