Un objetivo central del nuevo SDK .NET de Couchbase es mejorar la experiencia del desarrollador. Estamos trabajando para lograr este objetivo de varias maneras:
- Reducción del número de pasos (léase App.Config "gratis") necesarios para ponerse en marcha con Couchbase y el cliente Couchbase .NET
- Proporcionar una interfaz coherente y uniforme en todos los SDK de cliente de Couchbase.
- Nuevas formas de consultar documentos y datos no estructurados fáciles de usar, flexibles y potentes.
Este post se centra en el último punto: proporcionar una API de consulta enriquecida a los documentos de Couchbase. Específicamente, se trata de las nuevas mejoras de consulta de vistas que estamos añadiendo a los SDK para que te resulte muy sencillo obtener TUS datos, ¡como TÚ quieras!
Consultas en Couchbase
El linaje de Couchbase está fuertemente influenciado por dos implementaciones de persistencia diferentes: una base de datos Clave/Valor y una base de datos Documento. Los almacenes K/V ofrecen un alto rendimiento y una baja latencia, pero tienen un coste: la falta de flexibilidad.
Las bases de datos de documentos se basan en el concepto de almacén K/V para almacenar documentos utilizando la clave como índice primario, pero luego añaden funciones adicionales para la indexación secundaria y compuesta y, lo que es más importante, funciones para realizar consultas a través de un conjunto de claves y agregar o filtrar los resultados emitiendo pro
jecciones del documento principal. En Couchbase utilizamos vistas creadas a partir de funciones Map/Reduce y las exponemos a través de una API REST que los clientes utilizan para consultar sus documentos.
En Couchbase Server 3.0, proporcionamos una tercera forma de acceder a sus datos: N1QL, un lenguaje de consulta similar a SQL. Planeamos exponer N1QL a través de consultas ad-hoc y un proveedor LINQ, en el futuro - cubriremos esto en profundidad en futuros posts.
Nueva sintaxis de consulta de vistas
Para el nuevo cliente .NET, hemos desarrollado un Interfaz fluida abstracción en torno al Ver API Rest que ofrece una forma intuitiva y natural de acceder a los documentos y consultarlos. He aquí un ejemplo:

Aquí
estamos creando un objeto Cluster, que es un observador de los cambios de configuración que ocurren en el cluster de Couchbase Server, y usándolo para abrir una instancia de bucket. Luego creamos un objeto ViewQuery pasando "true" como parámetro, lo que indica que estamos trabajando con un objeto vista del desarrollo. A continuación, encadenamos una serie de llamadas a funciones que se utilizarán para generar una petición REST utilizando el mecanismo de interfaz fluida. El método From(...) especifica el bucket y el documento de diseño al que apuntar y el método View(...) es la vista de Couchbase a la que estamos accediendo.
Después de construir el objeto ViewQuery, lo pasamos al método Get(...) que ejecutará la petición REST y luego serializará los resultados a un tipo dinámico. Los beneficios de utilizar un tipo dinámico aquí es que no tienes que tener un POCO explícitamente tipado definido en tiempo de compilación, lo que proporciona un poco de flexibilidad. Finalmente, iteramos a través de las filas y mostramos los resultados.
Tenga en cuenta que, cuando se publique la versión preliminar para desarrolladores, no será necesario realizar la conversión explícita a IViewSupportable y es posible que se produzcan algunos cambios más, como el requisito de pasar el nombre del cubo al método From(...).
Vista previa para desarrolladores
Habrán notado que mencioné el DP en este post y sí, tenemos uno planeado, pero no anunciaremos públicamente la fecha hasta un poco más tarde este mes o principios del próximo.
Gracias por la actualización; nuestro equipo de desarrollo está ansioso por ver qué incluyen las actualizaciones y deseando no tan secretamente que se publiquen en el periodo de tiempo que has citado.
[...] nueva API de vistas fluida para trabajar con vistas creadas con JavaScript Map/Reduce [...]