{"id":1563,"date":"2014-12-16T19:24:07","date_gmt":"2014-12-16T19:24:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1563"},"modified":"2025-06-13T23:50:22","modified_gmt":"2025-06-14T06:50:22","slug":"couchbase-net-sdk-20-developer-preview-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-developer-preview-1\/","title":{"rendered":"Couchbase .NET SDK 2.0 Developer Preview 1"},"content":{"rendered":"<p>Por fin presentamos la Developer Preview 1 (DP1) oficial del SDK .NET 2.0 de Couchbase. Anteriormente <a href=\"https:\/\/www.couchbase.com\/blog\/es\/introducing-couchbase-net-sdk-20-development-blog-serie\/\" target=\"_blank\" rel=\"noopener noreferrer\">publicado<\/a> sobre algunas de las motivaciones detr\u00e1s de la reescritura del SDK .NET de Couchbase y tambi\u00e9n algunos de los objetivos y caracter\u00edsticas que deber\u00edas esperar encontrar en \u00e9l.  Este DP1 representa el <strong>subconjunto m\u00ednimo de caracter\u00edsticas<\/strong> y deber\u00eda darte una idea de la direcci\u00f3n que estamos tomando la API desde la perspectiva de un desarrollador. En este post, te mostrar\u00e9 c\u00f3mo poner en marcha una vista previa del nuevo cliente y mostrar algunas de estas caracter\u00edsticas.<\/p>\n<h2>Advertencia: \u00a1No utilice el DP1 en producci\u00f3n!<\/h2>\n<p>A menos, claro, que te guste correr con tijeras y pasarte noches en vela depurando problemas de producci\u00f3n.<\/p>\n<p><em>En serio<\/em> amigos, esto deber\u00eda considerarse <strong>un prelanzamiento muy temprano<\/strong> y de aqu\u00ed a la AG final se esperan muchos cambios internos y externos. Dicho esto, es probable que las interfaces p\u00fablicas no cambien demasiado, salvo que se a\u00f1adan m\u00e9todos y funciones adicionales.<\/p>\n<h2>Requisitos previos<\/h2>\n<p>Para empezar a trabajar con la DP1 se necesitan un par de requisitos previos:<\/p>\n<ul>\n<li>Tienes una instancia local de Couchbase Server 2.5 o superior instalada y funcionando. Si no es as\u00ed, hazlo ahora: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/download<\/a><\/li>\n<li>Tienes N1QL Developer Preview 3 instalado y funcionando. Si no es as\u00ed, cons\u00edguela tambi\u00e9n: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/communities\/n1ql<\/a><\/li>\n<li>Visual Studio 2013 instalado. VS2012 probablemente servir\u00e1 tambi\u00e9n, o una de las versiones Express: <a href=\"https:\/\/www.visualstudio.com\/en-us\/products\/visual-studio-express-vs.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.visualstudio.com\/en-us\/products\/visual-studio-express-vs.aspx<\/a>pero no los he probado, as\u00ed que t\u00fa mismo ;)<\/li>\n<li>Ahora, vaya a descargar los bits de <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/net\/2.0\/dp1\/couchbase-net-client-2-dp1.zip\">aqu\u00ed<\/a>.<\/li>\n<\/ul>\n<p>Vale, \u00bflo tienes todo instalado? Genial, \u00a1escribamos algo de c\u00f3digo*!<\/p>\n<p>*Si desea seguir el tutorial, inicie VS2013 y cree una aplicaci\u00f3n de consola llamada Couchbase.NetDP1 y a\u00f1ada referencias a los binarios del punto anterior. La soluci\u00f3n\/proyecto final tambi\u00e9n est\u00e1 disponible <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/net\/2.0\/dp1\/couchbase-net-client-2.0-dp1-example.zip\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed<\/a>.<\/p>\n<h2>Objeto de cl\u00faster<\/h2>\n<p>El objeto Cluster representa el lado del cliente de un Cluster del Servidor Couchbase y proporciona interfaces para interactuar con los Buckets de Couchbase y las API's de Gesti\u00f3n. Internamente gestiona la conectividad entre el cliente y el servidor y asegura que los recursos son asignados y desasignados correctamente.<\/p>\n<p>La clase Cluster es un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\">GOF<\/a> Singleton con comportamiento lazy-loaded; es que una \u00fanica instancia debe ser utilizada a trav\u00e9s de todos los hilos dentro de un proceso. Este es un gran cambio con respecto al cliente 1.X anterior que, aunque no era un singleton, por razones de rendimiento, necesitaba ser tratado como un singleton.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3556\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-1.png\" alt=\"dp1-cluster-1\" width=\"800\" height=\"254\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1-300x95.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1-768x244.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1-20x6.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Para poder utilizar el objeto Cluster, primero hay que inicializarlo. Por defecto, la configuraci\u00f3n est\u00e1 establecida para utilizar localhost (127.0.0.1) y crear un pool de conexiones con un MaxSize de 2 y un MinSize de 1 conexi\u00f3n TCP por objeto Cluster. Puede anular estos valores predeterminados creando su propio objeto ClientConfiguration y pas\u00e1ndolo al m\u00e9todo Cluster.Initialize(...) antes de llamar a Cluster.Get().<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3558\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-2.png\" alt=\"dp1-cluster-2\" width=\"800\" height=\"368\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-2.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-2-300x138.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-2-768x353.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-2-20x9.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>La clase ClientConfiguration tambi\u00e9n le permite anular la configuraci\u00f3n a nivel de Bucket, lo que le permite crear una configuraci\u00f3n independiente para cada Bucket que desee utilizar.<\/p>\n<h2>El objeto CouchbaseBucket<\/h2>\n<p>Adem\u00e1s del objeto Cluster, otra clase importante es la clase CouchbaseBucket, que proporciona una API para consultar Views, realizar consultas N1QL y hacer operaciones CRUD generales sobre claves. Tambi\u00e9n realiza cualquier serializaci\u00f3n\/deserializaci\u00f3n necesaria de Tipos y gestiona el hash de claves a trav\u00e9s del cluster para un conjunto de claves. La clase CouchbaseBucket, implementa la interfaz IBucket y tiene un primo para trabajar con Memcached Buckets en memoria: MemachedBucket. Ambas son soportadas en esta DP.<\/p>\n<p>Para usar la clase CouchbaseBucket, necesitas un objeto Cluster inicializado (ver arriba) y tambi\u00e9n necesitas que el Bucket ya exista dentro de la instancia de Couchbase Server o cluster. Aqu\u00ed tienes un ejemplo de c\u00f3mo abrir el Bucket \"por defecto\" que viene con cada instalaci\u00f3n de Couchbase:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3559\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-3.png\" alt=\" dp1-cluster-3\" width=\"800\" height=\"281\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-3.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-3-300x105.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-3-768x270.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-3-20x7.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Una vez que tenga una instancia de Bucket, puede empezar a realizar operaciones CRUD sobre los documentos y el Bucket. Tenga en cuenta que en DP1 s\u00f3lo se pueden insertar y leer documentos. He aqu\u00ed un ejemplo del nuevo m\u00e9todo Insert:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3560\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-4.png\" alt=\"dp1-cluster-4\" width=\"800\" height=\"513\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-4.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-4-300x192.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-4-768x492.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-4-20x13.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Y he aqu\u00ed un ejemplo de uso de Get(key) para recuperar los documentos insertados en el bucket por defecto utilizando el c\u00f3digo anterior:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3561\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-5.png\" alt=\"dp1-cluster-5\" width=\"728\" height=\"377\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-5.png 728w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-5-300x155.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-5-20x10.png 20w\" sizes=\"auto, (max-width: 728px) 100vw, 728px\" \/><\/p>\n<p>Una vez que haya terminado de utilizar un Cubo, simplemente suelte de nuevo al objeto Cluster:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3562\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-8.png\" alt=\"dp1-cluster-8\" width=\"756\" height=\"78\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-8.png 756w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-8-300x31.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-8-20x2.png 20w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/p>\n<p>El propio objeto Cluster implementa IDisposable, por lo que cuando el proceso que lo est\u00e1 utilizando finaliza, el m\u00e9todo Dispose debe ser llamado. Si no se llama expl\u00edcitamente, el GC invocar\u00e1 al finalizador en alg\u00fan momento posterior, llamando impl\u00edcitamente a Dispose y limpiando los recursos internos.<\/p>\n<h2>El objeto IOperationResult<\/h2>\n<p>La mayor\u00eda de los m\u00e9todos devuelven un objeto IOperationResult que proporciona informaci\u00f3n adicional sobre los resultados de la operaci\u00f3n. Lo m\u00e1s notable es que tiene las siguientes propiedades:<\/p>\n<ul>\n<li><strong>Valor<\/strong> - el objeto o valor que se inserta o devuelve desde Couchbase - este es el Tipo T<\/li>\n<li><strong>\u00c9xito<\/strong> - un valor booleano que indica si la operaci\u00f3n ha tenido \u00e9xito o no<\/li>\n<li><strong>Mensaje<\/strong> - un valor de cadena con informaci\u00f3n adicional sobre por qu\u00e9 fall\u00f3 la operaci\u00f3n (si fall\u00f3), de lo contrario est\u00e1 vac\u00edo.<\/li>\n<li><strong>ResponseStatus<\/strong> - el valor devuelto por el servidor que indica el estado de la operaci\u00f3n.<\/li>\n<li><strong>Cas<\/strong> - un unsigned long que es el valor \"Check and Set\" para la operaci\u00f3n. Esto se utiliza como un medio de concurrencia optimista.<\/li>\n<\/ul>\n<p>Un patr\u00f3n bastante t\u00edpico es comprobar la propiedad \u00c9xito y alterar el flujo del programa en consecuencia si se detecta un error.<\/p>\n<h2>Soporte N1QL<\/h2>\n<p>Esta vista previa para desarrolladores tambi\u00e9n proporciona soporte b\u00e1sico para consultas N1QL ad-hoc. Si no sabes lo que es N1QL, es un lenguaje similar a SQL para consultar documentos en Couchbase Buckets. Aqu\u00ed tienes un ejemplo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3563\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-6.png\" alt=\"dp1-cluster-6\" width=\"724\" height=\"489\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-6.png 724w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-6-300x203.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-6-235x160.png 235w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-6-20x14.png 20w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/p>\n<p>Por favor, ten en cuenta que debes tener la Developer Preview 3 para N1QL instalada y funcionando para que esto funcione. Puedes conseguirla aqu\u00ed: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\">https:\/\/www.couchbase.com\/communities\/n1ql<\/a><\/p>\n<h2>Ver soporte<\/h2>\n<p>La consulta de vistas tambi\u00e9n est\u00e1 soportada en la vista previa para desarrolladores 1. Asumiendo que tienes beer-sample instalado (puedes instalarlo desde la Consola de Administraci\u00f3n del Servidor Couchbase bajo las pesta\u00f1as Settings-&gt;Samples), la siguiente consulta deber\u00eda funcionar:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3564\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/dp1-cluster-7.png\" alt=\"dp1-cluster-7\" width=\"800\" height=\"434\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-7.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-7-300x163.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-7-768x417.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-7-20x11.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>El m\u00e9todo CreateQuery crea una interfaz IViewQuery, que permite generar una URI REST de Couchbase View. Es una <a href=\"https:\/\/martinfowler.com\/bliki\/FluentInterface.html\">\"estilo fluido\" <\/a>de modo que pueda encadenar una serie de llamadas para crear la consulta adecuada a su caso de uso.<\/p>\n<h2>Siguiente<\/h2>\n<p>Esperamos tener al menos una vista previa m\u00e1s para desarrolladores antes de lanzar la versi\u00f3n beta, y la versi\u00f3n de prueba se espera para mediados o finales del verano de 2014 (no hay fecha fijada, as\u00ed que esto puede cambiar). Desde una perspectiva de cara al p\u00fablico, es probable que las interfaces p\u00fablicas que se discuten aqu\u00ed cambien un poco, principalmente para hacerlas m\u00e1s consistentes y f\u00e1ciles de usar. Dicho esto, est\u00e1n bastante listas, a la espera de los comentarios de la comunidad de desarrolladores (\u00a1os escuchamos!).<\/p>\n<p>Lo que probablemente ver\u00e1 en la pr\u00f3xima vista previa para desarrolladores es soporte para todas o la mayor\u00eda de las operaciones CRUD de Couchbase (Incrementar\/Decrementar, observar, etc) y soporte para <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh873175%28v=vs.110%29.aspx\">TAP (await\/async)<\/a> Despu\u00e9s se har\u00e1 m\u00e1s hincapi\u00e9 en el rendimiento y la estabilidad interna. M\u00e1s adelante, ver\u00e1 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/bb397926.aspx\">LINQ<\/a> apoyo a <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\">N1QL<\/a> consultas y soporte SSL<\/p>\n<h2>Necesitamos su opini\u00f3n<\/h2>\n<p>S\u00ed, \u00a1t\u00fa! Adelante, juega con los bits y dinos lo que piensas. Si encuentras un error o tienes una petici\u00f3n de funcionalidad, puedes crear un ticket Jira aqu\u00ed:<a href=\"https:\/\/www.couchbase.com\/blog\/es\/issues\/browse\/NCBC\/\" target=\"_blank\" rel=\"noopener noreferrer\"> https:\/\/www.couchbase.com\/issues\/browse\/NCBC<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>At long last, we present the official Developer Preview 1 (DP1) for the Couchbase .NET 2.0 SDK! Previously, I posted about some of the motivation behind rewriting the Couchbase .NET SDK and also some of the goals and features you [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811],"tags":[],"ppma_author":[8970],"class_list":["post-1563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Couchbase .NET SDK 2.0 Developer Preview 1 - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-developer-preview-1\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase .NET SDK 2.0 Developer Preview 1\" \/>\n<meta property=\"og:description\" content=\"At long last, we present the official Developer Preview 1 (DP1) for the Couchbase .NET 2.0 SDK! Previously, I posted about some of the motivation behind rewriting the Couchbase .NET SDK and also some of the goals and features you [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-developer-preview-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T19:24:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:50:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Couchbase .NET SDK 2.0 Developer Preview 1\",\"datePublished\":\"2014-12-16T19:24:06+00:00\",\"dateModified\":\"2025-06-14T06:50:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/\"},\"wordCount\":1222,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"articleSection\":[\".NET\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/\",\"name\":\"Couchbase .NET SDK 2.0 Developer Preview 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:24:06+00:00\",\"dateModified\":\"2025-06-14T06:50:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-net-sdk-20-developer-preview-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase .NET SDK 2.0 Developer Preview 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/jeffrysmorris\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/jeff-morris\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase .NET SDK 2.0 Developer Preview 1 - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-developer-preview-1\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase .NET SDK 2.0 Developer Preview 1","og_description":"At long last, we present the official Developer Preview 1 (DP1) for the Couchbase .NET 2.0 SDK! Previously, I posted about some of the motivation behind rewriting the Couchbase .NET SDK and also some of the goals and features you [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-developer-preview-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T19:24:06+00:00","article_modified_time":"2025-06-14T06:50:22+00:00","og_image":[{"width":800,"height":254,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/dp1-cluster-1.png","type":"image\/png"}],"author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Couchbase .NET SDK 2.0 Developer Preview 1","datePublished":"2014-12-16T19:24:06+00:00","dateModified":"2025-06-14T06:50:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/"},"wordCount":1222,"commentCount":6,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":[".NET"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/","name":"Couchbase .NET SDK 2.0 Developer Preview 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:24:06+00:00","dateModified":"2025-06-14T06:50:22+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase .NET SDK 2.0 Developer Preview 1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Ingeniero Superior de Software, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pas\u00f3 seis a\u00f1os en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de c\u00f3mo integrarse con N1QL (lenguaje de consulta).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/jeff-morris\/"}]}},"acf":[],"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1563"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1563"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}