{"id":4394,"date":"2016-10-12T00:00:00","date_gmt":"2016-10-12T00:00:00","guid":{"rendered":""},"modified":"2025-06-23T07:02:30","modified_gmt":"2025-06-23T14:02:30","slug":"simpler-azure-management-libraries-for-net","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/","title":{"rendered":"Simpler Azure Management Libraries for .NET"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-net\/tree\/Fluent\">https:\/\/github.com\/Azure\/azure-sdk-for-net\/tree\/Fluent<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are announcing the first developer preview release of the new, simplified Azure management libraries for .NET. Our goal is to improve the developer experience by providing a higher-level, object-oriented API, optimized for readability and writability. These libraries are built on the lower-level, request-response style <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-net\/tree\/AutoRest\">auto generated clients<\/a> and can run side-by-side with <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-net\/tree\/AutoRest\">auto generated clients<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"azure-authentication\">Azure Authentication<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One statement to authenticate and choose a subscription. The Azure class is the simplest entry point for creating and interacting with Azure resources.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nAzure azure = Azure.Authenticate(credFile).WithDefaultSubscription();\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"create-a-virtual-machine\">Create a Virtual Machine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can create a virtual machine instance by using a Define() \u2026 Create() method chain.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nConsole.WriteLine(\"Creating a Windows VM\");\n\nvar windowsVM = azure.VirtualMachines.Define(\"myWindowsVM\")\n    .WithRegion(Region.US_EAST)\n    .WithNewResourceGroup(rgName)\n    .WithNewPrimaryNetwork(\"10.0.0.0\/28\")\n    .WithPrimaryPrivateIpAddressDynamic()\n    .WithNewPrimaryPublicIpAddress(\"mywindowsvmdns\")\n    .WithPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER)\n    .WithAdminUserName(\"tirekicker\")\n    .WithPassword(password)\n    .WithSize(VirtualMachineSizeTypes.StandardD3V2)\n    .Create();\n\nConsole.WriteLine(\"Created a Windows VM: \" + windowsVM.Id);\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"update-a-virtual-machine\">Update a Virtual Machine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can update a virtual machine instance by using an Update() \u2026 Apply() method chain.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nwindowsVM.Update()\n     .WithNewDataDisk(10)\n     .DefineNewDataDisk(dataDiskName)\n          .WithSizeInGB(20)\n          .WithCaching(CachingTypes.ReadWrite)\n          .Attach()\n     .Apply();\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"management-libraries-unleash-the-power-of-intellisense-in-visual-studio\">Management libraries unleash the power of IntelliSense in Visual Studio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fluent interface-inspired method chains in combination with IntelliSense deliver a wizard-like developer experience by presenting required and optional methods in the right sequence. For example, once you choose a Windows virtual machine image, IntelliSense will prompt for an admin password and nothing else.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\" alt=\"create-vm\" style=\"border-radius:0px\" title=\"create-vm\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then, IntelliSense will prompt for a password and nothing else. This will continue until you reach the minimum required to call create().<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/56e39236-29a9-4d66-b850-c1d05fdb55c8.webp\" alt=\"create-vm-create\" style=\"border-radius:0px\" title=\"create-vm-create\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">As another example, if you were to choose a Linux virtual machine image, IntelliSense would prompt for a root user name and then SSH key.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"samples\">Samples<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can find plenty of sample code that illustrates key management scenarios in Azure Virtual Machines, Virtual Machine Scale Sets, Storage, Networking, Resource Manager, Key Vault and Batch \u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Service\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Management Scenario<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Virtual Machines\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-manage-vm\">Manage virtual machine<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-manage-availability-sets\">Manage availability set<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-list-vm-images\">List virtual machine images<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-manage-virtual-machine-using-vm-extensions\">Manage virtual machines using VM extensions<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-list-vm-extension-images\">List virtual machine extension images<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Virtual Machines &#8211; parallel execution\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/azure-samples\/compute-dotnet-manage-virtual-machines-in-parallel\">Create multiple virtual machines in parallel<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/azure-samples\/compute-dotnet-manage-virtual-machines-with-network-in-parallel\">Create multiple virtual machines with network in parallel<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Virtual Machine Scale Sets\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/compute-dotnet-manage-virtual-machine-scale-sets\">Manage virtual machine scale sets (behind an Internet facing load balancer)<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Storage\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/storage-dotnet-manage-storage-accounts\">Manage storage accounts<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Network\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-virtual-network\">Manage virtual network<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-network-interface\">Manage network interface<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-network-security-group\">Manage network security group<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-ip-address\">Manage IP address<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-internet-facing-load-balancers\">Manage Internet facing load balancers<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/network-dotnet-manage-internal-load-balancers\">Manage internal load balancers<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Resource Groups\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/resources-dotnet-manage-resource-group\">Manage resource groups<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/resources-dotnet-manage-resource\">Manage resources<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/resources-dotnet-deploy-using-arm-template\">Deploy resources with ARM templates<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/resources-dotnet-deploy-using-arm-template-with-progress\">Deploy resources with ARM templates (with progress)<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Key Vault\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/key-vault-dotnet-manage-key-vaults\">Manage key vaults<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Batch\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/github.com\/Azure-Samples\/batch-dotnet-manage-batch-accounts\">Manage batch accounts<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"give-it-a-try\">Give it a try<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is a developer preview that supports major parts of Azure Virtual Machines, Virtual Machine Scale Sets, Storage, Networking, Resource Manager, Key Vault and Batch. You can run the samples above or go straight to <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-net\/tree\/Fluent\">our GitHub repo<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Give it a try and let us know what do you think (via <a href=\"mailto:az-libs-for-net@microsoft.com\">e-mail<\/a> or comments below), particularly &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Usability and effectiveness of the new management libraries for .NET?<\/li>\n\n\n\n<li class=\"wp-block-list-item\">What Azure services you would like to see supported soon?<\/li>\n\n\n\n<li class=\"wp-block-list-item\">What additional scenarios should be illustrated as sample code?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The next preview version of the Azure Management Libraries for .NET is a work in-progress. We will be adding support for more Azure services and tweaking the API over the next few months.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1551],"tags":[],"audience":[3055],"content-type":[1511],"product":[1552],"tech-community":[],"topic":[],"coauthors":[59],"class_list":["post-4394","post","type-post","status-publish","format-standard","hentry","category-developer-tools","audience-developers","content-type-best-practices","product-visual-studio","review-flag-1680286581-295","review-flag-1680286581-364","review-flag-new-1680286579-546","review-flag-vm-1680286585-143"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simpler Azure Management Libraries for .NET | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simpler Azure Management Libraries for .NET | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-12T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-23T14:02:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\" \/>\n<meta name=\"author\" content=\"Asir Selvasingh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Asir Selvasingh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/asir-selvasingh\/\",\"@type\":\"Person\",\"@name\":\"Asir Selvasingh\"}],\"headline\":\"Simpler Azure Management Libraries for .NET\",\"datePublished\":\"2016-10-12T00:00:00+00:00\",\"dateModified\":\"2025-06-23T14:02:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\"},\"wordCount\":529,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\",\"articleSection\":[\"Developer tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\",\"name\":\"Simpler Azure Management Libraries for .NET | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\",\"datePublished\":\"2016-10-12T00:00:00+00:00\",\"dateModified\":\"2025-06-23T14:02:30+00:00\",\"description\":\"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developer tools\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/developer-tools\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Simpler Azure Management Libraries for .NET\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simpler Azure Management Libraries for .NET | Microsoft Azure Blog","description":"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.","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:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/","og_locale":"en_US","og_type":"article","og_title":"Simpler Azure Management Libraries for .NET | Microsoft Azure Blog","og_description":"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2016-10-12T00:00:00+00:00","article_modified_time":"2025-06-23T14:02:30+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp","type":"","width":"","height":""}],"author":"Asir Selvasingh","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Asir Selvasingh","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/asir-selvasingh\/","@type":"Person","@name":"Asir Selvasingh"}],"headline":"Simpler Azure Management Libraries for .NET","datePublished":"2016-10-12T00:00:00+00:00","dateModified":"2025-06-23T14:02:30+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/"},"wordCount":529,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp","articleSection":["Developer tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/","name":"Simpler Azure Management Libraries for .NET | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp","datePublished":"2016-10-12T00:00:00+00:00","dateModified":"2025-06-23T14:02:30+00:00","description":"One C# statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network, etc. No more guessing about what is required vs. optional vs. non-modifiable.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2016\/10\/3dacccd5-d8d5-432f-9c83-688cd1ed4cf7.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/simpler-azure-management-libraries-for-net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Developer tools","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/developer-tools\/"},{"@type":"ListItem","position":3,"name":"Simpler Azure Management Libraries for .NET"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/4394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=4394"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/4394\/revisions"}],"predecessor-version":[{"id":42806,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/4394\/revisions\/42806"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=4394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=4394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=4394"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=4394"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=4394"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=4394"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=4394"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=4394"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=4394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}