{"id":65,"date":"2014-12-16T19:24:07","date_gmt":"2014-12-16T19:24:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-developer-preview-1\/"},"modified":"2014-12-16T19:24:07","modified_gmt":"2014-12-16T19:24:06","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>At long last, we present the official Developer Preview 1 (DP1) for the Couchbase .NET 2.0 SDK! Previously, I <a href=\"https:\/\/www.couchbase.com\/blog\/es\/introducing-couchbase-net-sdk-20-development-blog-serie\/\" target=\"_blank\" rel=\"noopener noreferrer\">posted<\/a> about some of the motivation behind rewriting the Couchbase .NET SDK and also some of the goals and features you should expect to find in it. \u00a0This DP1 represents the <strong>minimal subset of features<\/strong> promised and should give you a feel for the direction we are taking the API from a developer\u2019s perspective. In this post, I\u2019ll show you how to get up and running with a preview of the new client and show off some of these features.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warning: Do not use the DP1 in production!<\/h2>\n\n\n\n<p>Unless of course you enjoy running with scissors and sleepless nights debugging production issues is your forte\u2019!<\/p>\n\n\n\n<p><em>Seriously<\/em> folks, this should be considered <strong>a very early pre-release<\/strong> and between now and the final GA lots of changes internally and externally are expected. That being said, the public interfaces will likely not change too much, with the exception of additional methods and functionality being added.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pre-requisites<\/h2>\n\n\n\n<p>A couple of pre-requisite are required to get up and running with the DP1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have a local instance of Couchbase Server 2.5 or greater installed and running. If not, go and do that now: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/download<\/a><\/li>\n\n\n<li>You have N1QL Developer Preview 3 installed and running. If not go get that as well: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/communities\/n1ql<\/a><\/li>\n\n\n<li>Visual Studio 2013 installed. VS2012 will probably do as well, or one of the Express versions: <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>, but I haven\u2019t tested them so you\u2019re on your own ;)<\/li>\n\n\n<li>Now, go download the bits from <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/net\/2.0\/dp1\/couchbase-net-client-2-dp1.zip\">here<\/a>.<\/li>\n\n<\/ul>\n\n\n\n<p>Ok, got everything installed? Cool, let\u2019s write some code*!<\/p>\n\n\n\n<p>*If you wish to follow along as a tutorial, start VS2013 and create a Console Application called Couchbase.NetDP1 and add references to the binaries from the last bullet-point above. The final solution\/project is also available <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\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cluster Object<\/h2>\n\n\n\n<p>The Cluster object represents the client side representation of a Couchbase Server Cluster and provides interfaces for interacting with Couchbase Buckets and the Management API\u2019s. Internally it manages the connectivity between the client and the server and ensures that resources are allocated and de-allocated correctly.<\/p>\n\n\n\n<p>The Cluster class is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\">GOF<\/a> Singleton with lazy-loaded behavior; it is that a single instance should be used across all threads within a process. This is a big change from the previous 1.X client which, while it wasn\u2019t a singleton, for performance reasons, needed to be treated like a singleton.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3556\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-1.png\" alt=\"dp1-cluster-1\" width=\"800\" height=\"254\"><\/p>\n\n\n\n<p>In order to use the Cluster object, you first need to initialize it. By default, the configuration is set to use localhost (127.0.0.1) and create a connection pool with a MaxSize of 2 and a MinSize of 1 TCP connection per Cluster object. You can override these defaults by creating your own ClientConfiguration object and passing that to the Cluster.Initialize(\u2026) method before calling Cluster.Get().<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3558\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-2.png\" alt=\"dp1-cluster-2\" width=\"800\" height=\"368\"><\/p>\n\n\n\n<p>The ClientConfiguration class also allows you to override configuration at the Bucket level, which allows you to create a separate configuration for each Bucket you wish to use.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The CouchbaseBucket Object<\/h2>\n\n\n\n<p>Besides the Cluster object, the another \u00a0important class is the CouchbaseBucket class, which provides an API for querying Views, performing N1QL queries and doing general CRUD operations on keys. It also performs any necessary serialization\/deserialization of Types and manages key hashing across the cluster for a set of keys. The CouchbaseBucket class, implements the IBucket interface and has a cousin for working with in-memory Memcached Buckets: MemachedBucket. Both are supported in this DP.<\/p>\n\n\n\n<p>In order to use the CouchbaseBucket class, you need an initialized Cluster object (see above) and you also need the Bucket to already exist within the Couchbase Server instance or cluster. Here is an example of opening the \u201cdefault\u201d Bucket which comes with every Couchbase install:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3559\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-3.png\" alt=\" dp1-cluster-3\" width=\"800\" height=\"281\"><\/p>\n\n\n\n<p>Once you have a Bucket instance, you can start performing CRUD operations on documents and the Bucket. Please note in DP1, only inserting and reading of documents is supported. Here is an example of the new Insert method:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3560\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-4.png\" alt=\"dp1-cluster-4\" width=\"800\" height=\"513\"><\/p>\n\n\n\n<p>And here is an example of using Get(key) to retrieve the documents inserted into the default bucket using the code above:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3561\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-5.png\" alt=\"dp1-cluster-5\" width=\"728\" height=\"377\"><\/p>\n\n\n\n<p>Once you are done using a Bucket, you simply release back to the Cluster object:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3562\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-8.png\" alt=\"dp1-cluster-8\" width=\"756\" height=\"78\"><\/p>\n\n\n\n<p>The Cluster object itself implements IDisposable, so when the process that is using it terminates, the Dispose method should be called. If it\u2019s not called explicitly, the GC will invoke the finalizer at some point in time later, implicitly call Dispose and cleaning up the internal resources.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The IOperationResult Object<\/h2>\n\n\n\n<p>Most of the methods return an IOperationResult object that provides additional information regarding the results of the operation. Most notable, it has the following properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Value<\/strong> \u2013 the object or value being inserted or returned from Couchbase \u2013 this is the Type T<\/li>\n\n\n<li><strong>Success<\/strong> \u2013 a Boolean value indicating whether or not the operation succeeded or not<\/li>\n\n\n<li><strong>Message<\/strong> \u2013 a string value with additional information regarding why the operation failed (if it did), otherwise it\u2019s empty.<\/li>\n\n\n<li><strong>ResponseStatus<\/strong> \u2013 the value returned from the server indicating status of the operation.<\/li>\n\n\n<li><strong>Cas<\/strong> \u2013 a unsigned long that is the \u201cCheck and Set\u201d value for the operation. This is used as a means of optimistic concurrency.<\/li>\n\n<\/ul>\n\n\n\n<p>A fairly typical pattern is to check the Success property and alter program flow accordingly if an error was detected.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">N1QL Support!<\/h2>\n\n\n\n<p>This developer preview also provides basic support for ad-hoc N1QL queries! If you\u2019re not aware of what N1QL is, it\u2019s a SQL like language for querying documents in Couchbase Buckets. Here is an example:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3563\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-6.png\" alt=\"dp1-cluster-6\" width=\"724\" height=\"489\"><\/p>\n\n\n\n<p>Please note that you must have Developer Preview 3 for N1QL installed and running for this to work! You can get it here: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\">https:\/\/www.couchbase.com\/communities\/n1ql<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">View Support<\/h2>\n\n\n\n<p>View querying is also supported in developer preview 1. Assuming you have beer-sample installed (you can install it from the Couchbase Server Management Console under the Settings-&gt;Samples tabs), the following query should work:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3564\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/dp1-cluster-7.png\" alt=\"dp1-cluster-7\" width=\"800\" height=\"434\"><\/p>\n\n\n\n<p>CreateQuery method create an IViewQuery interface, which allows a Couchbase View REST URI to be generated. It\u2019s a <a href=\"https:\/\/martinfowler.com\/bliki\/FluentInterface.html\">\u201cfluent-style\u201d <\/a>interface, so you can chain together a series of calls to create the right query for your use-case.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next Up<\/h2>\n\n\n\n<p>We are expecting to have at least one more developer preview before we release beta and a GA can be expected around mid-to-late summer 2014 (no date is set, so this may change!). From a public facing perspective, the public interfaces discussed here are likely to change a bit, primarily to make them more consistent and easier to use. That being said they are fairly baked, pending feedback from the developer community (we are listening to you!).<\/p>\n\n\n\n<p>What you will likely see in the next developer preview are support for all or most of Couchbase CRUD operations (Increment\/Decrement, observe, etc) and support for <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh873175%28v=vs.110%29.aspx\">TAP (await\/async)<\/a> after that you will more emphasis on performance and internal stability. Further down the line, you will see <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/bb397926.aspx\">LINQ<\/a> support for <a href=\"https:\/\/www.couchbase.com\/blog\/es\/communities\/n1ql\/\">N1QL<\/a> queries and SSL support<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">We Need Your Feedback!<\/h2>\n\n\n\n<p>Yes, you! Go ahead and play with the bits and let us know what you think. If you find a bug or have a feature request, you can create a Jira ticket here:<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 should expect to find in it. \u00a0This DP1 represents the minimal subset of features promised [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":18,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[33],"tags":[],"ppma_author":[32],"class_list":["post-65","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.6 (Yoast SEO v27.6) - 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 should expect to find in it. \u00a0This DP1 represents the minimal subset of features promised [&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=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\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\",\"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\\\/5\\\/2026\\\/05\\\/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\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:24:06+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\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/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\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"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 should expect to find in it. \u00a0This DP1 represents the minimal subset of features promised [&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","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.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","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\/5\/2026\/05\/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\/5\/2026\/05\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:24:06+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\/5\/2026\/05\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/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\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","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\/"}]}},"acf":[],"authors":[{"term_id":32,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?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\/65","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=65"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/18"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=65"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}