{"id":2259,"date":"2016-05-13T14:14:10","date_gmt":"2016-05-13T14:14:10","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2259"},"modified":"2025-10-09T07:09:51","modified_gmt":"2025-10-09T14:09:51","slug":"couchbase-with-windows-and-net-part-3-asp-net-mvc","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/","title":{"rendered":"Couchbase com Windows e .NET - Parte 3 - ASP.NET MVC"},"content":{"rendered":"<p><em>Esta postagem do blog \u00e9 a parte 3 de uma s\u00e9rie<\/em>:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-.net---part-1\/\">A Parte 1 abordou como instalar e configurar o Couchbase no Windows<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-.net---part-2\/\">A Parte 2 abordou alguns termos do Couchbase que voc\u00ea precisar\u00e1 conhecer<\/a><\/li>\n<\/ul>\n<p>Voc\u00ea est\u00e1 pronto para escrever algum c\u00f3digo? Nesta postagem do blog, iniciaremos um novo projeto ASP.NET MVC, adicionaremos o SDK do Couchbase a ele com o NuGet e teremos a infraestrutura pronta para come\u00e7ar a usar o Couchbase.<\/p>\n<p>Iniciei no Visual Studio com File-&gt;New, selecionei ASP.NET Web Application e, em seguida, selecionei \"MVC\". Presumo que voc\u00ea tenha alguma familiaridade com o ASP.NET MVC, mas se algo parecer fora do comum para voc\u00ea, deixe um coment\u00e1rio, <a href=\"https:\/\/twitter.com\/mgroves\">me envie uma mensagem no Twitter<\/a>ou envie-me um e-mail (matthew.groves AT couchbase DOT com) com suas perguntas.<\/p>\n<h2>Instala\u00e7\u00e3o da biblioteca do cliente Couchbase<\/h2>\n<p>A primeira coisa que precisamos fazer \u00e9 adicionar o cliente Couchbase .NET. Voc\u00ea pode fazer isso com a interface do usu\u00e1rio do NuGet, clicando com o bot\u00e3o direito do mouse em \"References\" (Refer\u00eancias), clicando em \"Manage NuGet Packages\" (Gerenciar pacotes NuGet), clicando em \"Browse\" (Procurar) e pesquisando \"CouchbaseNetClient\". (Se quiser, voc\u00ea pode procurar por \"Linq2Couchbase\" em vez disso. A instala\u00e7\u00e3o desse pacote tamb\u00e9m far\u00e1 com que o CouchbaseNetClient seja instalado, mas na verdade n\u00e3o usarei nenhum Linq2Couchbase at\u00e9 posts posteriores no blog).<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/nugetui_001.png\" alt=\"NuGet UI for installing CouchbaseNetClient\" \/><\/p>\n<p>Se preferir a linha de comando do NuGet, abra o console do Package Manager e digite <code>Instalar o pacote CouchbaseNetClient<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/nugetpackagemanagerconsole_002.png\" alt=\"NuGet Package Manager Console for installing CouchbaseNetClient\" \/><\/p>\n<h2>Como fazer com que o aplicativo ASP.NET se comunique com um cluster do Couchbase<\/h2>\n<p>Agora vamos configurar o aplicativo ASP.NET para poder se conectar ao Couchbase. A primeira coisa que precisamos fazer \u00e9 localizar o cluster do Couchbase. O melhor lugar para fazer isso \u00e9 no Global.asax.cs quando o aplicativo \u00e9 iniciado. No m\u00ednimo, precisamos especificar um n\u00f3 no cluster e fornec\u00ea-lo ao comando <code>Ajudante de cluster<\/code>. Isso s\u00f3 precisa ser feito uma vez em <code>In\u00edcio_do_aplicativo<\/code>. Quando o aplicativo terminar, \u00e9 uma boa ideia fechar o <code>Ajudante de cluster<\/code> para limpar e descartar recursos que n\u00e3o s\u00e3o necess\u00e1rios.<\/p>\n<pre><code>public class MvcApplication : System.Web.HttpApplication\r\n{\r\n    protected void Application_Start()\r\n    {\r\n        AreaRegistration.RegisterAllAreas();\r\n        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\r\n        RouteConfig.RegisterRoutes(RouteTable.Routes);\r\n\r\n        var config = new ClientConfiguration();\r\n        config.Servers = new List\r\n        {\r\n            new Uri(\"https:\/\/localhost:8091\")\r\n        };\r\n        config.UseSsl = false;\r\n        ClusterHelper.Initialize(config);\r\n    }\r\n\r\n    protected void Application_End()\r\n    {\r\n        ClusterHelper.Close();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Algumas observa\u00e7\u00f5es:<\/p>\n<ul>\n<li>Este c\u00f3digo pressup\u00f5e que voc\u00ea esteja executando um n\u00f3 do Couchbase em seu computador local (localhost). Se isso n\u00e3o for verdade, substitua por localhost. Por exemplo, eu tenho um n\u00f3 do Couchbase em execu\u00e7\u00e3o em uma m\u00e1quina diferente no meu escrit\u00f3rio, ent\u00e3o eu substituiria <code>novo Uri(\"https:\/\/192.168.1.5\")<\/code>.<\/li>\n<li>UseSsl est\u00e1 definido como false, porque n\u00e3o tenho um certificado em execu\u00e7\u00e3o no meu n\u00f3 do Couchbase. Se voc\u00ea estiver acessando o Couchbase pela Internet, poder\u00e1 usar o SSL para evitar que o tr\u00e1fego de dados seja enviado de forma clara.<\/li>\n<\/ul>\n<h2>Configura\u00e7\u00e3o de um cont\u00eainer IoC<\/h2>\n<p>Depois que o ClusterHelper for inicializado, poderemos us\u00e1-lo para acessar os buckets.<\/p>\n<p>H\u00e1 muitas maneiras de proceder para conectar as depend\u00eancias em seu aplicativo, mas eu gosto de usar um cont\u00eainer IoC. H\u00e1 muitas ferramentas de IoC dispon\u00edveis para .NET, mas a minha favorita \u00e9 <a href=\"https:\/\/structuremap.github.io\/\">Mapa de estrutura<\/a>. H\u00e1 outro pacote NuGet que integra o StructureMap ao MVC para voc\u00ea. Depois de instal\u00e1-lo, os objetos do controlador MVC ser\u00e3o instanciados por meio do StructureMap. Instale com o NuGet (UI ou console), <code>StructureMap.MVC5<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/nugetpackagemanagerconsole2_002b.png\" alt=\"Installing StructureMap.MVC5 with NuGet\" \/><\/p>\n<p>Ele adicionar\u00e1 o StructureMap ao seu projeto, bem como v\u00e1rios outros arquivos. Um deles \u00e9 o DefaultRegistry.cs, que configura o StructureMap para usar as conven\u00e7\u00f5es padr\u00e3o.<\/p>\n<p>O que precisaremos fazer com o Couchbase \u00e9 modificar esse registro para que o StructureMap possa nos fornecer uma inst\u00e2ncia do IBucket. Um IBucket, ent\u00e3o, \u00e9 usado para interagir com um bucket do Couchbase (obter documentos, adicionar documentos, atualizar documentos e assim por diante). Veja a seguir como configurar um registro do IBucket:<\/p>\n<pre><code> public class DefaultRegistry : Registry {\r\n    #region Constructors and Destructors\r\n\r\n    public DefaultRegistry() {\r\n        Scan(\r\n            scan =&gt; {\r\n                scan.TheCallingAssembly();\r\n                scan.WithDefaultConventions();\r\n                scan.With(new ControllerConvention());\r\n            });\r\n        \/\/ this next 'For' is what I've added for Couchbase\r\n        For().Singleton().Use(\"Get a Couchbase Bucket\",\r\n            x =&gt; ClusterHelper.GetBucket(\"hello-couchbase\", \"password!\"));\r\n    }\r\n\r\n    #endregion\r\n}\r\n<\/code><\/pre>\n<p>Neste exemplo:<\/p>\n<ul>\n<li>Estou usando o ClusterHelper para obter um bucket espec\u00edfico (que chamei de \"hello-couchbase\", mas voc\u00ea pode chamar como quiser). Certifique-se de que esse bucket exista no Couchbase (voc\u00ea pode usar o \"default\" ou um dos buckets de exemplo se tiver configurado um em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-.net---part-1\/\">Parte 1 desta s\u00e9rie do blog<\/a>).<\/li>\n<li>N\u00e3o \u00e9 obrigat\u00f3rio colocar uma senha em um bucket, mas \u00e9 uma boa ideia.<\/li>\n<li>A inst\u00e2ncia do IBucket \u00e9 um singleton, porque n\u00e3o h\u00e1 motivo para ter v\u00e1rias inst\u00e2ncias dele.<\/li>\n<\/ul>\n<h2>Usando o IBucket em um controlador<\/h2>\n<p>Apenas para mostrar que isso funciona, v\u00e1 em frente e adicione o IBucket a um construtor de um controlador, por exemplo, HomeController. O StructureMap j\u00e1 foi configurado para instanciar os controladores e j\u00e1 dissemos a ele como instanciar um IBucket. (A longo prazo, voc\u00ea provavelmente n\u00e3o desejar\u00e1 usar o IBucket diretamente no controlador; falaremos mais sobre isso em posts futuros do blog).<\/p>\n<pre><code>public class HomeController : Controller\r\n{\r\n    private readonly IBucket _bucket;\r\n\r\n    public HomeController(IBucket bucket)\r\n    {\r\n        _bucket = bucket;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Em seguida, adicione um documento ao seu bucket, diretamente no Console do Couchbase. Anote a chave que voc\u00ea fornecer a ele.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/couchbasecreatedocument_003.png\" alt=\"Specifying a key for a new document in Couchbase\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/couchbasecreatedocument_004.png\" alt=\"Creating a document in Couchbase\" \/><\/p>\n<p>Agora, adicione uma a\u00e7\u00e3o ao HomeController. Essa \u00e9 uma a\u00e7\u00e3o descart\u00e1vel apenas para fins de demonstra\u00e7\u00e3o. \u00c9 a coisa mais simples que pode ser feita: ela obter\u00e1 o documento com base na chave e escrever\u00e1 os valores do documento na resposta.<\/p>\n<pre><code>    public ActionResult Index()\r\n    {\r\n        var doc = _bucket.Get(\"foo::123\");\r\n        return Content(\"Name: \" + doc.Value.name + \", Address: \" + doc.Value.address);\r\n    }\r\n<\/code><\/pre>\n<p><code>doc.Value<\/code> \u00e9 do tipo <code>din\u00e2mico<\/code>Portanto, certifique-se de que os campos que voc\u00ea usa (no meu caso, nome e endere\u00e7o) correspondam ao documento JSON que voc\u00ea colocou no bucket. Execute seu site MVC em um navegador e voc\u00ea ver\u00e1 algo parecido com isto:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/couchbase-with-windows-and-.net---part-3---asp.net-mvc\/couchbaseaspnethelloworld_005b.png\" alt=\"Outputting the document values to a browser\" \/><\/p>\n<p>Parab\u00e9ns, voc\u00ea conseguiu criar um site ASP.NET que usa o Couchbase. N\u00e3o foi t\u00e3o dif\u00edcil, foi?<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Mostrei a voc\u00ea os princ\u00edpios b\u00e1sicos de conex\u00e3o e uso do Couchbase no ASP.NET MVC. Mas podemos fazer muito melhor. Na pr\u00f3xima postagem do blog, mostrarei como usar o Linq2Couchbase para criar uma entidade, um reposit\u00f3rio, e como usar esse reposit\u00f3rio para criar um site com funcionalidade real. Como sempre, se voc\u00ea precisar de ajuda com qualquer coisa, deixe um coment\u00e1rio, <a href=\"https:\/\/twitter.com\/mgroves\">me envie uma mensagem no Twitter<\/a>ou envie um e-mail para mim (matthew.groves AT couchbase DOT com).<\/p>","protected":false},"excerpt":{"rendered":"<p>This blog post is part 3 of a series: Part 1 covered how to install and setup Couchbase on Windows Part 2 covered some Couchbase lingo that you&#8217;ll need to know Are you ready to write some code? In this [&hellip;]<\/p>","protected":false},"author":71,"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,10126,1816],"tags":[],"ppma_author":[8937],"class_list":["post-2259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-asp-dotnet","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase with Windows &amp; .NET \u2013 Part 3 - 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\/pt\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase with Windows and .NET - Part 3 - ASP.NET MVC\" \/>\n<meta property=\"og:description\" content=\"This blog post is part 3 of a series: Part 1 covered how to install and setup Couchbase on Windows Part 2 covered some Couchbase lingo that you&#8217;ll need to know Are you ready to write some code? In this [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-13T14:14:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:09:51+00:00\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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-with-windows-and-net-part-3-asp-net-mvc\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Couchbase with Windows and .NET &#8211; Part 3 &#8211; ASP.NET MVC\",\"datePublished\":\"2016-05-13T14:14:10+00:00\",\"dateModified\":\"2025-10-09T14:09:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\"},\"wordCount\":941,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\".NET\",\"ASP.NET\",\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\",\"name\":\"Couchbase with Windows & .NET \u2013 Part 3 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-05-13T14:14:10+00:00\",\"dateModified\":\"2025-10-09T14:09:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#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-with-windows-and-net-part-3-asp-net-mvc\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase with Windows and .NET &#8211; Part 3 &#8211; ASP.NET MVC\"}]},{\"@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\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase with Windows & .NET \u2013 Part 3 - 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\/pt\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase with Windows and .NET - Part 3 - ASP.NET MVC","og_description":"This blog post is part 3 of a series: Part 1 covered how to install and setup Couchbase on Windows Part 2 covered some Couchbase lingo that you&#8217;ll need to know Are you ready to write some code? In this [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-05-13T14:14:10+00:00","article_modified_time":"2025-10-09T14:09:51+00:00","author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Couchbase with Windows and .NET &#8211; Part 3 &#8211; ASP.NET MVC","datePublished":"2016-05-13T14:14:10+00:00","dateModified":"2025-10-09T14:09:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/"},"wordCount":941,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":[".NET","ASP.NET","Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/","name":"Couchbase with Windows & .NET \u2013 Part 3 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-05-13T14:14:10+00:00","dateModified":"2025-10-09T14:09:51+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-net-part-3-asp-net-mvc\/#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-with-windows-and-net-part-3-asp-net-mvc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase with Windows and .NET &#8211; Part 3 &#8211; ASP.NET MVC"}]},{"@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\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves \u00e9 um cara que adora programar. N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves \u00e9 um cara que adora programar.  N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa.  Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90.  Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores.  Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2259","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\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2259"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2259\/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=2259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2259"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}