{"id":2439,"date":"2016-11-18T15:00:00","date_gmt":"2016-11-18T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2439"},"modified":"2025-10-09T06:35:58","modified_gmt":"2025-10-09T13:35:58","slug":"net-core-with-visual-studio-code","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/","title":{"rendered":".NET Core with Visual Studio Code"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Jeff Morris already wrote a great <a href=\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-.net-sdk-core-2.4.0-dp1\/\">blog post to introduce the Couchbase .NET Core SDK<\/a>, which is now in developer preview.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>I\u2019m going to show you some of the tooling that I\u2019m using to write .NET Core on Windows: <span style=\"font-weight: 400\">Visual Studio Code with NuGet and other extensions<\/span>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truegetting-started\">Getting Started<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Here\u2019s what I\u2019m using on Windows, but note that this shouldn\u2019t be much different on Mac or Linux!<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>Install <a href=\"https:\/\/www.microsoft.com\/net\/core#windowscmd\">.NET Core<\/a><\/li>\n<li>Install <a href=\"https:\/\/code.visualstudio.com\/\">Visual Studio Code<\/a> (VSC) &#8212; this is optional, but it is a great tool, and it\u2019s free!<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Once you have Visual Studio Code installed, I recommend that you install these extensions:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.csharp\">C# (powered by OmniSharp)<\/a> &#8211; this will give you some of the normal C# features you expect if you\u2019ve used Visual Studio with .Net Core before: syntax highlighting, IntelliSense, and so on.<\/li>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ksubedi.net-core-project-manager\">.Net Core NuGet Project Manager<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>You can install these extensions right in Visual Studio Code using the UI, or you can use <strong>Ctrl+P<\/strong> and then type <code>ext install net-core-project-manager<\/code> or <code>ext install csharp<\/code>. Keep <strong>Ctrl+P<\/strong> in your mind, because once you have the NuGet Project Manager installed, you will also use it to install <span style=\"font-weight: 400\">a NuGet package in Visual Studio Code<\/span>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truelet-s-write-some-code\">Let\u2019s write some code<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Use Powershell or CMD to make a project folder. Once you are there:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>dotnet new<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>This will create some files: <code>Program.cs<\/code> and <code>project.json<\/code>.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/november\/.net-core-with-visual-studio-code\/039dotnetnew.png\" alt=\"Running dotnet new to create a new .NET Core project\" \/><\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Then, to get the dependencies listed in <code>project.json<\/code>, run another command:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>dotnet restore<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You might now notice a <code>project.lock.json<\/code> file. This is generated by NuGet to figure out the dependency graph. You don\u2019t need to commit this to your source code repository, and I\u2019ve omitted it from the source code for my example.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Now, I\u2019m going to open up this folder in Visual Studio Code by running:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>code .<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>At this point, the project is ready to execute. You can go back to Powershell\/CMD if you\u2019d like, or you can use <strong>Ctrl+`<\/strong> to use the <strong>Integrated Terminal<\/strong> within VSC. To run the program:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>dotnet run<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If you ran that now, you\u2019d get a &#8220;Hello World&#8221;. Let\u2019s add some Couchbase to this project.Start with <strong>Ctrl+P<\/strong>, then type &#8220;&gt;nuget&#8221; until &#8220;Add New Package&#8221; appears. Enter a search term, like &#8220;couchbase&#8221;. &#8220;CouchbaseNetClient&#8221; should appear in the list. Select it, and then you should be able to select a version.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/november\/.net-core-with-visual-studio-code\/039nugetvsc.png\" alt=\"Using NuGet to install the Couchbase .NET Core SDK\" \/><\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Currently, for .NET Core, you\u2019ll need to select 2.4.0-dp2, since .NET Core support is still a &#8220;developer preview&#8221;.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Once you have this added to your project, working with the .NET Core SDK should be familiar to you if you\u2019ve used the .NET SDK. Inside of the <code>Main<\/code> method, here\u2019s how you connect to a cluster and setup a bucket:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\/\/ connect to a cluster, get a bucket\r\nClusterHelper.Initialize(new ClientConfiguration {\r\n    Servers = new List { new Uri(\"couchbase:\/\/localhost\")}\r\n});\r\nvar bucket = ClusterHelper.GetBucket(\"default\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Next, I\u2019m inserting an &#8220;electric bill&#8221; document using the bucket object. Note that I\u2019m using the Async method. According to Jeff\u2019s blog post, the synchronous API may be going away, so I\u2019m trying to get used to the asychonous API. I\u2019m using <code>Task.WaitAll<\/code>, so it\u2019s still running synchronously for the purposes of this sample console app.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\/\/ insert a document with some random values\r\nvar document = new Document {\r\n    Id = Guid.NewGuid().ToString(),\r\n    Content = new {\r\n        invoiceNumber = Path.GetRandomFileName(),\r\n        amountDue = new Random().Next(10,300),\r\n        type = \"electricbill\"\r\n    }\r\n};\r\nTask.WaitAll(bucket.InsertAsync(document)); \/\/ wait for async method to finish\r\nConsole.WriteLine(\"New electric bill created.\");\r\nConsole.WriteLine();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Next, I\u2019m executing a parameterized N1QL query with <a href=\"https:\/\/www.couchbase.com\/blog\/new-to-couchbase-4.5-atplus\/\">RequestPlus consistency<\/a> to list all of the electric bills.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\/\/ get all electric bills with N1QL and list them\r\nvar query = Couchbase.N1QL.QueryRequest.Create(\"SELECT b.* FROM `default` b WHERE type = $1\");\r\nquery.AddPositionalParameter(\"electricbill\");\r\nquery.ScanConsistency(ScanConsistency.RequestPlus);\r\nvar result = bucket.QueryAsync(query).Result;  \/\/ calling QueryAsync synchronously<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Again, this is using the Async API, but since I\u2019m calling <code>.Result<\/code>, it\u2019s functionally synchronous. Finally, based on the results of the N1QL query, I\u2019m either outputting error information or I\u2019m looping through the results and writing them to console.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">Console.WriteLine(\"Success: \" + result.Success);\r\nif(!result.Success) {\r\n    Console.WriteLine(\"Message: \" + result.Message);\r\n    Console.WriteLine(\"Exception: \" + result.Exception?.GetType().Name);\r\n    Console.WriteLine(\"Exception Message: \" + result?.Exception?.Message);\r\n    result.Errors.ForEach(e =&gt; Console.WriteLine(\"Error: \" + e?.Message));\r\n    return;\r\n}\r\n\r\nConsole.WriteLine();\r\nConsole.WriteLine(\"Bills:\");\r\nConsole.WriteLine(\"------\");\r\nforeach(var bill in result.Rows) {\r\n    Console.WriteLine($\"{bill.invoiceNumber} - {bill.amountDue.ToString(\"C\")}\");\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>When I run this program, it will create a new document (each time) and list all the documents it\u2019s created cumulatively.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/november\/.net-core-with-visual-studio-code\/039dotnetrun.png\" alt=\"Running .NET Core project using Couchbase\" \/><\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><em>Note: if you are having trouble getting started with Couchbase Server, or you are getting errors, especially in regards to N1QL indexing, you may want to revisit some of my &#8220;Getting Started&#8221; blog posts:<\/em> <a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-.net---part-1\/\">Couchbase with Windows Part 1<\/a> <em>and<\/em> <a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-with-windows-and-.net---part-2\/\">Couchbase with Windows Part 2<\/a> <em>in particular<\/em>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truewhat-s-different\">What\u2019s different?<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>For the most part, this feels very much like working with full Visual Studio and .NET. Visual Studio Code is not as full-featured, yet, but already has a great library of extensions. For Couchbase developers, working with the .NET Core SDK is practically identical.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>One thing that it may take some time to get used to is the lack of ReSharper. I don\u2019t know if ReSharper is going to come to VSC (JetBrains has their own light-weight C# IDE called <a href=\"https:\/\/www.jetbrains.com\/rider\/\">Rider<\/a>). I have a habit of using <strong>Alt+Enter<\/strong> to add <code>using<\/code> statements, and that same keyboard shortcut doesn\u2019t work in VSC (by default). The refactoring lightbulbs still show up, and here are the namespaces for the record:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">using System;\r\nusing System.Collections.Generic;\r\nusing System.IO;\r\nusing System.Threading.Tasks;\r\nusing Couchbase;\r\nusing Couchbase.Configuration.Client;\r\nusing Couchbase.N1QL;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>It\u2019s also a little strange to create a project with <code>dotnet new<\/code> instead of File\u2192New, but that\u2019s something I can get used to.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truesummary\">Summary<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Even if you don\u2019t plan on writing .NET Core code just yet, you should still check out Visual Studio Code. It\u2019s a great text editor, if nothing else. If you are currently writing .NET with Couchbase, the Couchbase part of your transition to .NET Core should be painless (your mileage may vary getting used to the new .NET Core tooling).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/039DotNetCore\/src\">The full source code for this .NET Core example using Couchbase is available on GitHub<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>What do you like or not like about VSC and .NET Core? Leave a comment below or let me know on Twitter. I\u2019m <a href=\"https:\/\/twitter.com\/mgroves\">@mgroves<\/a>. If you are having any trouble with .NET, .NET Core, or Couchbase Server, I\u2019m here to help you.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jeff Morris already wrote a great blog post to introduce the Couchbase .NET Core SDK, which is now in developer preview. I\u2019m going to show you some of the tooling that I\u2019m using to write .NET Core on Windows: Visual [&hellip;]<\/p>\n","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,1816,1812],"tags":[1764],"ppma_author":[8937],"class_list":["post-2439","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-couchbase-server","category-n1ql-query","tag-visual-studio-code"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>.NET Core on Windows: Visual Studio Code with NuGet<\/title>\n<meta name=\"description\" content=\"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.\" \/>\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\/net-core-with-visual-studio-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\".NET Core with Visual Studio Code\" \/>\n<meta property=\"og:description\" content=\"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-18T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T13:35:58+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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\".NET Core with Visual Studio Code\",\"datePublished\":\"2016-11-18T15:00:00+00:00\",\"dateModified\":\"2025-10-09T13:35:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\"},\"wordCount\":907,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Visual Studio Code\"],\"articleSection\":[\".NET\",\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\",\"name\":\".NET Core on Windows: Visual Studio Code with NuGet\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-11-18T15:00:00+00:00\",\"dateModified\":\"2025-10-09T13:35:58+00:00\",\"description\":\"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#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\/net-core-with-visual-studio-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\".NET Core with Visual Studio Code\"}]},{\"@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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\":\"en-US\",\"@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\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":".NET Core on Windows: Visual Studio Code with NuGet","description":"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.","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\/net-core-with-visual-studio-code\/","og_locale":"en_US","og_type":"article","og_title":".NET Core with Visual Studio Code","og_description":"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.","og_url":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-11-18T15:00:00+00:00","article_modified_time":"2025-10-09T13:35:58+00:00","author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":".NET Core with Visual Studio Code","datePublished":"2016-11-18T15:00:00+00:00","dateModified":"2025-10-09T13:35:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/"},"wordCount":907,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Visual Studio Code"],"articleSection":[".NET","Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/","url":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/","name":".NET Core on Windows: Visual Studio Code with NuGet","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-11-18T15:00:00+00:00","dateModified":"2025-10-09T13:35:58+00:00","description":"Find out how to use some of the tooling that Couchbase is using to write .NET Core on Windows: Visual Studio Code with NuGet and other extensions.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/net-core-with-visual-studio-code\/#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\/net-core-with-visual-studio-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":".NET Core with Visual Studio Code"}]},{"@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":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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":"en-US","@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\/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 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."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2439"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2439\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2439"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}