{"id":1653,"date":"2014-12-16T19:35:14","date_gmt":"2014-12-16T19:35:13","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1653"},"modified":"2025-06-13T23:50:09","modified_gmt":"2025-06-14T06:50:09","slug":"introducing-couchbase-net-sdk-20-development-blog-series","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-net-sdk-20-development-blog-series\/","title":{"rendered":"Apresentando a s\u00e9rie de blogs de desenvolvimento do Couchbase DOTNET SDK 2.0"},"content":{"rendered":"<p>Ol\u00e1 pessoal, nos pr\u00f3ximos meses, faremos uma s\u00e9rie de blogs que acompanhar\u00e3o o desenvolvimento do Couchbase .NET 2.0 SDK. Neste post, abordarei a arquitetura de alto n\u00edvel, algumas motiva\u00e7\u00f5es e recursos que voc\u00ea deve esperar e quais s\u00e3o os objetivos gerais do .NET SDK em rela\u00e7\u00e3o aos outros clientes do Couchbase: Node, PHP, Java e C. Discutir os objetivos do SDK do .NET no escopo de todo o conjunto de clientes do Couchbase \u00e9 uma etapa importante na unifica\u00e7\u00e3o das APIs, para que os desenvolvedores tenham uma experi\u00eancia de programa\u00e7\u00e3o consistente, independentemente do SDK escolhido.<\/p>\n<h1>Hist\u00f3ria e motiva\u00e7\u00e3o<\/h1>\n<p>Primeiramente, vamos falar sobre qual \u00e9 a motiva\u00e7\u00e3o para reescrever o SDK do Couchbase .NET. Observe que, em sua maior parte, essa \u00e9 uma reescrita completa do zero... praticamente todos os componentes est\u00e3o sendo reprojetados e desenvolvidos para atender melhor \u00e0s necessidades de nossos clientes e da comunidade de usu\u00e1rios em geral. A esta altura, a maioria de n\u00f3s j\u00e1 foi avisada de que o <em><a href=\"https:\/\/www.joelonsoftware.com\/articles\/fog0000000069.html\">o pior erro estrat\u00e9gico que uma empresa de software pode cometer \u00e9 reescrever um c\u00f3digo funcional e funcional do zero<\/a><\/em><strong>, <\/strong>mas n\u00f3s, aqui no Couchbase, achamos que essa \u00e9 a melhor decis\u00e3o, considerando o hist\u00f3rico e o estado do SDK .NET 1.X e a dire\u00e7\u00e3o que queremos seguir com o cliente.<\/p>\n<p>Um pouco de hist\u00f3ria pode ser \u00fatil aqui. O cliente atual \u00e9 baseado no cliente Memcached .NET original: <a href=\"https:\/\/github.com\/enyim\/EnyimMemcached\">Enyim.Caching<\/a>. Ela foi escrita h\u00e1 v\u00e1rios anos e originalmente suportava o protocolo Memcached Text e, eventualmente, tamb\u00e9m o protocolo Memcached Binary. Por si s\u00f3, ele foi projetado para ser uma API aut\u00f4noma, n\u00e3o uma estrutura para a cria\u00e7\u00e3o de outras APIs. Dito isso, o atual cliente .NET Couchbase foi criado com base em uma bifurca\u00e7\u00e3o do c\u00f3digo-fonte Enyim.Caching; fizemos a bifurca\u00e7\u00e3o porque o autor original, embora fosse um grande apoiador, n\u00e3o tinha mais o tempo necess\u00e1rio para manter o projeto em andamento. O cliente Couchbase adicionou suporte a visualiza\u00e7\u00f5es e outros recursos espec\u00edficos do Couchbase Server sobre o material K\/V j\u00e1 suportado pelo Enyim.Caching.<\/p>\n<p>Como o cliente foi originalmente baseado em um protocolo baseado em K\/V, a adapta\u00e7\u00e3o de alguns dos recursos do Couchbase criou uma API um tanto espinhosa. Al\u00e9m disso, \u00e0 medida que mais camadas foram adicionadas, a complexidade tamb\u00e9m aumentou, tornando o suporte e a manuten\u00e7\u00e3o do cliente cada vez mais dif\u00edceis. Al\u00e9m disso, como o cliente \u00e9 realmente baseado no .NET 3.5 (embora criemos para o 4.0, o 3.5 \u00e9 o LCD), n\u00e3o est\u00e1vamos progredindo com os recursos atuais de \u00faltima gera\u00e7\u00e3o do .NET, como as novas e poderosas bibliotecas\/recursos ass\u00edncronos baseados em tarefas (async\/await) e melhorias nas APIs de rede. Portanto, manter a compatibilidade com vers\u00f5es anteriores e progredir com o cliente \u00e9 imposs\u00edvel; precisamos tomar uma dire\u00e7\u00e3o totalmente nova.<\/p>\n<h1>Metas e recursos<\/h1>\n<p>As metas\/objetivos do SDK do Couchbase .NET 2.0 s\u00e3o bastante simples:<\/p>\n<ul>\n<li>Unifica\u00e7\u00e3o e consist\u00eancia da interface de programa\u00e7\u00e3o em todas as plataformas do SDK do Couchbase (Java, .NET, PHP, Node, C, etc.)<\/li>\n<li>Um design flex\u00edvel e orientado por testes - extensibilidade em seu n\u00facleo<\/li>\n<li>Altamente configur\u00e1vel, mas f\u00e1cil de colocar em funcionamento com a configura\u00e7\u00e3o padr\u00e3o<\/li>\n<li>E\/S ass\u00edncrona - um modelo sem bloqueio para programa\u00e7\u00e3o de rede<\/li>\n<li>Uma interface de programa\u00e7\u00e3o simples e f\u00e1cil de usar<\/li>\n<li>Uso minimalista de conex\u00f5es cliente\/servidor<\/li>\n<li>Documenta\u00e7\u00e3o aprimorada<\/li>\n<\/ul>\n<p>Alguns recursos prov\u00e1veis incluem:<\/p>\n<ul>\n<li>Suporte para a publica\u00e7\u00e3o de configura\u00e7\u00e3o da operadora de cluster (<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/wiki\/display\/couchbase\/Cluster+Configuration+Carrier+Publication\/\">CCCP<\/a>) - uma nova maneira de atualizar a configura\u00e7\u00e3o dos clientes com base no estado atual dos clusters por meio de um mecanismo de extra\u00e7\u00e3o<\/li>\n<li>Padr\u00e3o ass\u00edncrono baseado em tarefas (<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh873175%28v=vs.110%29.aspx\">TAP<\/a>) suporte para opera\u00e7\u00f5es de K\/V e View<\/li>\n<li>Primeira classe <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/communities\/n1ql\/\">N1QL<\/a> suporte - N1QL \u00e9 a nova e incr\u00edvel linguagem de consulta semelhante ao SQL no Couchbase<\/li>\n<li>A <a href=\"https:\/\/en.wikipedia.org\/wiki\/Language_Integrated_Query\">LINQ<\/a> implementa\u00e7\u00e3o do provedor sobre a API principal<\/li>\n<li>Pontos de integra\u00e7\u00e3o com outras tecnologias .NET, como ASP.NET e Frameworks, para desenvolver rapidamente aplicativos orientados por dados<\/li>\n<\/ul>\n<h1>Arquitetura de alto n\u00edvel<\/h1>\n<p>Nos \u00faltimos dois anos, a equipe do SDK do Couchbase desenvolveu v\u00e1rios clientes do Couchbase Server em diferentes plataformas e estruturas: .NET, Java, Node.js etc. Como cada um desses clientes foi desenvolvido e evoluiu com as altera\u00e7\u00f5es no servidor, surgiram v\u00e1rios padr\u00f5es para o desenvolvimento de um cliente com reconhecimento de cluster ou, mais especificamente no caso do Couchbase, um cliente \"inteligente\". Com o objetivo de \"unificar a interface de programa\u00e7\u00e3o\", implementamos esses padr\u00f5es em cada cliente. Discutiremos esses padr\u00f5es em detalhes em postagens posteriores.<\/p>\n<p align=\"center\"><strong>Componentes do cliente Couchbase<\/strong><\/p>\n<p>Esses componentes formam um cliente do Couchbase:<\/p>\n<ul>\n<li>IO - Gerenciamento de recursos e acesso geral \u00e0 programa\u00e7\u00e3o de rede<\/li>\n<li>Configura\u00e7\u00e3o - Configura\u00e7\u00e3o do cliente e do servidor<\/li>\n<li>Opera\u00e7\u00f5es - opera\u00e7\u00f5es de chave\/valor e visualiza\u00e7\u00e3o em documentos JSON: Get, Set, etc.<\/li>\n<li>Mapa do cluster - gerencia os n\u00f3s ativos e onde as chaves s\u00e3o armazenadas no cluster<\/li>\n<li>Registro e instrumenta\u00e7\u00e3o - Registro geral, rastreamento e monitoramento da atividade do cliente<\/li>\n<\/ul>\n<h1>Pr\u00f3ximo<\/h1>\n<p>Bem, por enquanto \u00e9 isso. A seguir, examinaremos o projeto e o desenvolvimento de uma parte do componente Configuration: Configura\u00e7\u00e3o do servidor. A configura\u00e7\u00e3o do servidor conduz o estado do cliente, que \u00e9 paralelo ao estado do cluster. Uma mudan\u00e7a no cluster geralmente significa uma mudan\u00e7a no estado do cliente tamb\u00e9m, o que traz consigo v\u00e1rias complexidades e problemas que devem ser resolvidos para manter as coisas est\u00e1veis.<\/p>","protected":false},"excerpt":{"rendered":"<p>Hello folks, over the next couple of months we\u2019ll be doing a series of blogs that will follow the development of the Couchbase .NET 2.0 SDK. In this post I will go over the high level architecture, some motivation and [&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":[1311,1349],"ppma_author":[8970],"class_list":["post-1653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","tag-architecture","tag-development"],"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>Introduction to the Couchbase .NET SDK 2.0 Development<\/title>\n<meta name=\"description\" content=\"Learn high level architecture and features, overall goals of the .NET SDK with respect to the other Couchbase clients: Node, PHP, Java, and C.\" \/>\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\/pt\/introducing-couchbase-net-sdk-20-development-blog-series\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series\" \/>\n<meta property=\"og:description\" content=\"Learn high level architecture and features, overall goals of the .NET SDK with respect to the other Couchbase clients: Node, PHP, Java, and C.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-net-sdk-20-development-blog-series\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T19:35:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:50:09+00:00\" \/>\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=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series\",\"datePublished\":\"2014-12-16T19:35:13+00:00\",\"dateModified\":\"2025-06-14T06:50:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/\"},\"wordCount\":847,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Architecture\",\"Development\"],\"articleSection\":[\".NET\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/\",\"name\":\"Introduction to the Couchbase .NET SDK 2.0 Development\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:35:13+00:00\",\"dateModified\":\"2025-06-14T06:50:09+00:00\",\"description\":\"Learn high level architecture and features, overall goals of the .NET SDK with respect to the other Couchbase clients: Node, PHP, Java, and C.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#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\\\/introducing-couchbase-net-sdk-20-development-blog-series\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\\\/pt\\\/author\\\/jeff-morris\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introdu\u00e7\u00e3o ao desenvolvimento do Couchbase .NET SDK 2.0","description":"Conhe\u00e7a a arquitetura e os recursos de alto n\u00edvel, os objetivos gerais do SDK do .NET em rela\u00e7\u00e3o aos outros clientes do Couchbase: Node, PHP, Java e C.","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\/pt\/introducing-couchbase-net-sdk-20-development-blog-series\/","og_locale":"pt_BR","og_type":"article","og_title":"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series","og_description":"Learn high level architecture and features, overall goals of the .NET SDK with respect to the other Couchbase clients: Node, PHP, Java, and C.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-net-sdk-20-development-blog-series\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T19:35:13+00:00","article_modified_time":"2025-06-14T06:50:09+00:00","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":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series","datePublished":"2014-12-16T19:35:13+00:00","dateModified":"2025-06-14T06:50:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/"},"wordCount":847,"commentCount":9,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Architecture","Development"],"articleSection":[".NET"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/","name":"Introdu\u00e7\u00e3o ao desenvolvimento do Couchbase .NET SDK 2.0","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:35:13+00:00","dateModified":"2025-06-14T06:50:09+00:00","description":"Conhe\u00e7a a arquitetura e os recursos de alto n\u00edvel, os objetivos gerais do SDK do .NET em rela\u00e7\u00e3o aos outros clientes do Couchbase: Node, PHP, Java e C.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-20-development-blog-series\/#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\/introducing-couchbase-net-sdk-20-development-blog-series\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing the Couchbase DOTNET SDK 2.0 Development Blog Series"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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, engenheiro de software s\u00eanior, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 engenheiro de software s\u00eanior da Couchbase. Antes de ingressar na Couchbase, Jeff passou seis anos na Source Interlink como arquiteto da Web corporativa. Jeff \u00e9 respons\u00e1vel pelo desenvolvimento dos SDKs do Couchbase e pela integra\u00e7\u00e3o com o N1QL (linguagem de consulta).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/1653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1653"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1653\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1653"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}