screen-shot-2017-03-04-at-10-43-14-amIn the past the only option for writing code and building software using Visual Studio was to install it on your local machine. With technologies like Windows Hyper-V and VMWare things became less invasive by allowing you to develop software inside of a Virtual Machine (VM). With the cloud, things have become even easier. You can now easily, spin up a Virtual Machine in Microsoft Azure, use it for what ever you need, then shut it down or delete it when it’s no longer needed. This can be an extremely valuable tool for any software developer; especially when you might need multiple development environment configurations on a regular basis. This article helps you navigate the benefits as well as the process of utilizing Microsoft Azure to host multiple development machines running Visual Studio 2017 in the cloud.

A newer version of this article exists for setting up a Visual Studio 2019 Development VM in Microsoft Azure.

Developing in the Cloud

It can sound a little mysterious to develop for the cloud, in the cloud. But using a VM as a development machine is pretty much just that. By using Virtual Machines as your development machines and environments it allows you to scale your local PC much further than it’s local hardware could ever scale. You can add more CPU power, more memory, more storage space. VM’s are a simple extension to the local constraints of your local PC. Plus, your local PC can be running any OS (Windows 10, macOS, Linux, or even iOS!)

The trick to using a Virtual Machine (VM) running Visual Studio for development, is to have a Remote Desktop Client application installed. Microsoft Remote Desktop (RDP) is a set of functionality and protocol that let’s you “remote in” to any Windows machine (either physical or virtual) and use it just like you were sitting at the machine directly. This let’s you use pretty much any computer remotely, and grants tons of power to any developer especially within the Microsoft Azure Cloud.

The steps to developing in the clouds are essentially as follows:

  1. Have a Microsoft Remote Desktop client application installed on your local computer; no matter the operating system.
  2. Setup 1 or more Virtual Machines (VMs) in the Cloud.
  3. Use the Microsoft Remote Desktop client to connect to and use those VMs just like they are your local computer.

Of course there are a few more things to know about using a VM to host Visual Studio and build software for the cloud, in the cloud. The rest of this article will walk through everything you need to know to setup Visual Studio VMs in Microsoft Azure, and get building software not just for the cloud, but also in the cloud today!

Benefits of Development VMs

Most developers focus mostly on the Platform as a Service (PaaS) services in Microsoft Azure, such as: Web Apps, Blob Storage, SQL Database and Service Bus. However, many Developers may not be very familiar with the Virtual Machine (VM) capabilities of Azure that includes the ability to easily spin up a Windows VM with Visual Studio already installed.

There are a few VM images available in the Azure Marketplace that have Visual Studio pre-installed. These are great way to get started with creating a temporary, or even longer term use, Development VM much quicker than installing the Operating System and Tooling yourself. (hint: It takes awhile to install Visual Studio)

Before we get into the different Visual Studio VMs available in the Azure Marketplace, let’s first cover some of the biggest benefits of spinning up a pre-built, pre-configured Windows VM with Visual Studio pre-installed.

  1. Zero Install Required – You can spin up a new Visual Studio development VM in a matter of minutes, and the best part is that you don’t have to install Windows or Visual Studio yourself.
  2. Protected from Hardware Failure – Using an Azure VM for development, or any other work use, provides isolation against hardware failures locally that involve your laptop, desktop, or external storage.
  3. Easily “Add” CPU / Memory Resources – Not only does an Azure VM allow you to essentially extend the capabilities of your laptop or desktop into the Cloud, but you can also resize the VM anytime to add or remove CPU Cores and Memory as needed.
  4. Device Agnostic – Azure VM’s can be connected to with Remote Desktop from any Computer, such as Windows, Linux, macOS, or even tablets! This allows you to easily interchange which physical “computer” you use for your development.

As you can imagine there are many benefits and advantages to using a VM for development, and putting that VM in the Cloud, in Microsoft Azure, further enhances those benefits to new levels. The previous mentioned benefits are only a few of the most obvious benefits. I’m sure once you start embracing Azure VMs for development that you’ll realize additional benefits as well.

Available Visual Studio 2017 VMs

For the IT Pro folks it’s known that the Microsoft Azure Marketplace offers many different Windows Server and Linux VMs that can be easily provisioned in minutes. However, many IT Pros and Developer alike may not be aware that the Microsoft Azure Marketplace also contains pre-build images for both Windows Server and Windows 10 with Visual Studio pre-installed.

Here’s the list of the different Visual Studio 2017 Virtual Machine images available in the Azure Marketplace:

  • Visual Studio Community 2017 on Windows Server 2016
  • Visual Studio Community 2017 on Windows 10 Enterprise N
  • Visual Studio Enterprise 2017 on Windows Server 2016
  • Visual Studio Enterprise 2017 on Windows 10 Enterprise N


As you can see there are Visual Studio VM images for both the Free Community edition, as well as the Enterprise edition, as well as Windows Server 2016 and Windows 10 Enterprise. However, the specific VM images you will see available within your Azure Subscription will depend on what type of Azure Subscription you have. If you have an MSDN Azure Subscription you will see the list as shown above. If you have a different type of Azure Subscription you will not see the Windows 10 based Visual Studio VMs as Windows 10 desktop operating system is not available through the Azure Marketplace without an MSDN Subscription.

Can you Bring Your Own VM (BYOVM)?

An interesting question that comes up, especially with the fact that Windows 10 VMs aren’t generally available to all Azure Subscriptions, is: Can you bring you own custom VM to Azure?

The short answer: YES!!

The long answer: You can build a VM locally using either Hyper-V or VMWare. Then you can upload that VMs .vhd operating system disk image into Azure Blob Storage. For VMWare, you’ll need to first convert it to a .vhd. Also, the newer Hyper-V .vhdx format isn’t supported in Microsoft Azure at this time, so those need to be converted to .vhd as well. After uploading the VM image, you can then setup an Azure VM to use your custom uploaded .vhd disk to boot from, and then you’ll have a custom built VM running in Azure.

With this method you can setup and install anything you need / want, so long as you provide all the necessary licensing required to run the software and it’ll host just fine in Microsoft Azure. It’s worth noting that this method takes far longer to get setup and you generally want to use a pre-built, pre-defined VM image from the Azure Marketplace if you can.

Provision a Visual Studio VM

The most obvious requirement to provisioning a Visual Studio Virtual Machine in Azure is that you’ll need to have an Azure Subscription. Also, as previously described, the available Visual Studio VM images in the Azure Marketplace will vary depending on the type of Azure Subscription that you have.

To help guide you through the process of provisioning a new Visual Studio VM in Azure, you can follow these simple steps:

  1. Navigate to the Azure Portal ( and login
  2. Click on the green +New button in the left hand navigation of the Azure Portal, then type Visual Studio 2017 into the Search the marketplace textbook, and press Enter.
  3. On the Everything search results, click on the desired Visual Studio VM image you would like to provision.
  4. On the VM information blade, click the Create button to get started provisioning. Be sure to leave the Deployment Model dropdown to the default of Resource Manager.
    vs17-azureportal-winservercommunity-rcNote: in these screenshots I chose to use the Visual studio Community 2017 on Windows Server 2016 marketplace image.
  5. On the Create virtual machine – Basics blade, fill out the necessary fields to define the basic settings for the VM, then click OK.
    • Name: the name of your VM
    • User name and Password: the Admin login credentials for the VM
    • Resource group: the Azure Resource Group to place the VM and all it’s resources into. This is just a way for you to more easily organize resources within the Azure cloud.
    • Location: this specifies the Azure Region to host your VM in. Generally you want to set this to the nearest region to where you are located geographically to help reduce internet latency when connecting to the VM.
  6. On the Create virtual machine – Choose a size blade, choose the VM Instance Size to use for the VM, then click Select. This is what defines the CPU Core count and amount of Memory that will be available to the server. I would recommend you normally use the DS2_V2 size which will give you 2 CPU Cores and 7 GB Memory. A smaller size will generally be too small and have poor performance. Alternatively, you can click on the View all link to list our ALL the available VM sizes so you can choose a different one if desired.
  7. On the Create virtual machine – Settings blade you can configure more advanced networking configurations for the VM is necessary. If you’re unsure what to do, then just leave the default values as they are, and click OK.
  8. On the the Create virtual machine – Summary blade, once the Validation passed message is displayed click OK to begin provisioning your new, awesome Visual Studio VM!!
  9. It’ll take a few minutes to complete the provisioning of the VM. Go take a break, or post on Twitter how awesome Visual Studio + Azure is, then come back and get ready to “develop for the cloud, in the cloud”.

Congratulations! After following the previous steps, you will now have a Windows VM with Visual Studio pre-installed all ready for you to use to “develop for the cloud, in the cloud.”

Connect with Remote Desktop

Once you have a Visual Studio VM provisioned in Microsoft Azure, the next step is to connect to it with Microsoft Remote Desktop so you can start using it and writing code. Microsoft Remote Desktop provides an easy way to remotely connect to a Windows computer (physical or VM) and use it just as if you were sitting down at the machine. It includes full display, keyboard and mouse support along with MANY other useful features.

To connect to an Azure VM with Remote Desktop, you first need to get the IP Address of the VM to connect to, then you’ll be able to connect using a Remote Desktop Client and the Admin username and password that was configured for the VM at creation.

The Azure Portal actually goes a step further and provides you an easy to use .rdp file for download. This enables you to click a button in the Azure Portal, then download and open the .rdp file that contains the necessary connection information for VM. When opening this file in the Remote Desktop Client, the only thing you need to fill in is the Admin username and password to connect.

To help you locate the IP Address of the VM, as well as download the .rdp file, you can follow the below steps:

  1. Navigate to and login to the Azure Portal (
  2. Once logged into the Azure Portal, you’ll need to locate the Virtual Machine you want to connect to. To do this, you can navigate to your VM by first finding the Resource Group its in by clicking on Resource groups in the left hand navigation, then click on the specific Resource Group.
  3. On the Resource group blade, click on the Virtual Machine resource type in the list of resources within the Resource Group.
  4. On the Virtual machine blade for your VM, you will find the Public IP address of the VM within the Essentials pane. Also, clicking on the Connect button will download a .rdp file that can be opened within the Microsoft Remote Desktop client.
  5. Once downloaded, you can open the .rdp file in the Microsoft Remote Desktop, then connect to your new Visual Studio VM running in Azure!
    • On Windows you can use the Microsoft Remote Desktop Connection client.
    • On macOS the best option is to use the Microsoft Remote Desktop application that can be installed through the macOS App Store.
  6. Once connected to the VM with Remote Desktop, if you provisioned the Visual Studio image from the Azure Marketplace that’s running Windows Server 2016, you’ll need to change the IE Enhanced Security Configuration setting. To do this, you’ll need to wait for the Server Manager window to pop up, then click on Local Server.
  7. Locate and click on the On text for IE Enhanced Security Configuration.
  8. In the Internet Explorer Enhanced Security Configuration window, select Off under Administrators, then click OK.
  9. Now you can open up Visual Studio 2017 in the VM and get coding!

Cost Saving Tips

If you’re not familiar with Azure billing and the difference resources involved when creating and hosting a Virtual Machine in Azure, then you may be a little worried about how much it’ll cost. So, I felt if was only natural to include some cost explanations and cost saving tips in this article. After you’ve provisioned a great Visual Studio development VM in Azure, it’s also important to keep the costs contained and as minimum as possible!

Below are some explanations on how Azure VM billing works along with a couple tips on how to save money and reduce hosting costs.

Azure VM Billing Explained

When provisioning an Azure Virtual Machine (VM) there are a number of resources provisioned that include things like the Public IP Address, Network interface, Networks security group, storage, and Virtual machine (the compute instance itself).

Here’s a screen capture of all the resources created for the previously provisioned Visual Studio VM. These resources are all created within the same Resource Group, in this case the Resource Group that was created for the VM as described in the previous steps.


Here’s the same list of resources along with a short description of what they are used for:

  • Storage account – storage the VM’s disk image, other words the .vhd file
  • Virtual network – a software defined network (SDN) where the VM will reside
  • Virtual machine – the compute instance for the running VM; this is where the CPU/Memory are defined and reserved
  • Network interface – the software defined Network Interface Card (NIC) that connects the VM to the Virtual Network
  • Public IP address – the piece of the software defined networking stack that defines the Public IP address connectivity for the VM to have access to the Internet and to be connected to with Remote Desktop
  • Network security group – a configurable set of rules that essentially defines the Inbound and Outbound Firewall rules to secure the Virtual Network and VM

As you can see, the Azure VM is really more than just a virtual machine under the covers. Conceptually it’s just a single machine, but really it’s made up of a bunch of different Infrastructure as a Service (IaaS) parts that combine to make up the desired VM configuration. Each of these parts have their own pricing, and some don’t have any cost associated with them.

To start talking about Azure VM cost, let’s first start with the major pieces that will affect the majority of the cost of your VM. These are the Storage account and Virtual machine.

The Virtual machine resource in Azure is what defines the Compute resources (CPU Cores and Memory). This is was maps directly to the underlying hardware within the Microsoft Azure data center that actually runs the VM. This is what costs the most out of all the necessary resources for an Azure Virtual Machine. The cost of the Virtual machine resource will depend on the specific Instance Size (defining CPU Cores, Memory, and other features) you choose to run your VM, but will only be incurred when the VM is provisioned and running (we’ll cover what this means in further detail down further).

The Storage account resource in Azure is where the VM’s .vhd disk image file is stored. The VM may be running in the Virtual Machine resource, but the .vhd disk image is persisted in the Storage account resource.

Thirdly, not really a specific resource, but an important aspect that affects cost is the Bandwidth Egress. This is the transfer of outbound data from Azure out to other servers / endpoints across the Internet. The Ingress, or inbound bandwidth into Azure, is Free. Even though the Egress cost is rather low, it will affect the VM cost some, so it’s important to be aware of.

Lastly, the other resources that make up the VM will incur very little or no cost at all. The Public IP address may incur a very small cost, which depends on your configuration. The remaining resources (Network interface, Network security group, and Virtual network) alone don’t incur any cost and make up underlying Infrastructure that the VM requires to run on top of.

To assess and gain visibility into the cost of an Azure VM and actually all the resources within a Resource Group, you can access a Resource costs summary at the Resource Group level. To access this summary, you can follow these steps:

  1. Within the Azure Portal, navigate to the Resource Group blade for the desired Resource Group.
  2. In the list of links on the Resource Group blade, click on Resource costs.
  3. On the Resource costs pane you will find a summary of the cost (or spend) of your resources in the Resource Group for the current billing period of your Azure Subscription.

As you can see from the screenshot, the majority of the cost of the shown VM is from the Virtual machine resource and some cost from the Storage account, with very little from the Public IP address, and nothing from the remaining resources.

vs17-subscription-chargesAnother place to view much further cost analysis and information on resources within your Azure Subscription is to view the Subscription Center within the Azure Portal. You can access this by clicking on the More services > link in the left-side Azure Portal navigation, then navigating to your Subscription.

How to Properly Shutdown a VM

There are 2 ways to shutdown an Azure VM, and they are certainly not equal! One way you will still get charged for the compute resources, and the other will free you from paying for the compute resources and help you reduce overall cost.

The first method to shutdown an Azure VM, that sounds logical in the context of connecting with Remote Desktop, is to Shutdown the Operating System. In this scenario you would be connected with Remote Desktop, and when done with your work you go to the Power options within Windows and select Shutdown. This will essentially “turn off” the VM and stop it from running. However, even though the VM won’t be running you WILL still be paying for the Virtual machine hardware allocation. Doing this will cause the Azure Portal to report the status of the VM to be “Stopped”.


The second method, and the one to remember, is to go into the Azure Portal (or use Azure PowerShell or Azure CLI) and Stop the VM. Instead of just shutting down the Operating System, Azure will also deallocate the hardware (CPU and Memory) allocation; thus releasing it to be used for another workload in Microsoft Azure. Doing this will cause the Azure Portal to report the status of the VM to be “Stopped (Deallocated)”.

While in the “Stopped (Deallocated” status, you will not be paying for the VM resources.

It’s a good idea that when ever you don’t actually need the VM to be running that you Stop it using the Azure Portal, PowerShell, or Azure CLI so that the resources are released. While in the “Stopped (Deallocated” status, you will not be paying for the VM resources. This will really help you save money!

To “properly” Stop a VM in the Azure Portal to release the resources and save money, you can follow these steps:

  1. Within the Azure Portal, navigate to the Virtual Machine blade for the desired VM.
  2. On the Overview pane, click the Stop button.

There is one caveat to be aware of when shutting down an Azure VM so it gets placed into the Stopped (Deallocated) status. Since this causes Azure to release the server resources associated with the Virtual Machine, it not only releases the CPU and Memory resources but also the Dynamic IP Address allocation. Due to this, when you Start the VM back up again, the IP Address will likely change. If you require the IP Address to never change for your VM, then you’ll need to configure a Static IP Address for the VM.

To start up a Stopped VM, you can follow these steps:

  1. Within the Azure Portal, navigate to the Virtual Machine blade for the desired VM.
  2. On the Overview pane, click the Start button.

Another point that’s important to remember when stopping Azure VM’s and placing them into the “Stopped (Deallocated)” state is that you do still pay for the Azure Storage account usage. Remember, the Storage account is where the VM’s .vhd disk image file is stored. Stopping the VM retains all the VM’s settings / configurations, as well as the .vhd image stored in Azure Storage. As a result, you will still incur some cost for the storage, but at least you will save on the VM resources. After all, the Storage will only cost a small amount of money compared to the much higher cost of the Virtual Machine resource allocation if it were left running constantly.

Schedule Auto Shutdown

Manually shutting down a VM to put it in the Stopped (Deallocated) status is a great way to save cost on Azure VM’s. Although, you do need to remember to Stop the VM. This introduces a certain level of human error in the process of saving you hosting costs on your Azure VMs. As a result, Microsoft has added a scheduled auto-shutdown feature into the platform to assist you in this effort.

With the Auto-shutdown feature, you are able to configure a specific Time (with Time Zone) when Azure is to automatically shutdown the VM. When configured, the VM will automatically be stopped if it is still running at that time of day.

To configure Auto-shutdown of an Azure VM, you can follow these steps:

  1. Within the Azure Portal, navigate to the Virtual Machine blade for the desired Virtual Machine.
  2. In the list of links on the Virtual Machine blade, click on Auto-shutdown.
  3. On the Auto-shutdown pane, configure the specific TimeTime Zone, and desired notification Webhook URL settings, then click Save.

If you forget to Stop your VM at the end of the day, or whenever the Auto-shutdown time is configured it will get Shutdown automatically. When using a Visual Studio development VM, this can become a good thing on Friday afternoons (or any other day when you might be in a hurry) when you’re most likely to forget to shutdown the VM.


Subscribe to the Build Azure Weekly newsletter to receive similar updates about Microsoft Azure and related topics!

We respect your privacy and take protecting it seriously. We do not sell our email list, and you can unsubscribe at any time.

Posted by Chris Pietschmann

Chris is a Microsoft MVP and has nearly 20 years of experience building enterprise systems both in the cloud and on-premises. He is also a Microsoft Certified Azure Solutions Architect and developer, a Microsoft Certified Trainer (MCT), and Cloud Advocate. He has a passion for technology and sharing what he learns with others to help enable them to learn faster and be more productive.


  1. […] Visual Studio 2017 Development using a VM in Azure (Chris Pietschmann) […]


  2. So about how much would this cost a day for a 8 hour a day job I wonder where the VM is powerful enough to not wish you were on a local machine. $5? $50 ?


    1. It depends on what VM instance size you choose, but making sure to shut it down will save HUGE! Basically, if you run in 8 hrs per day, 5 days per week, you’re only running it 40 hours per week. A D2_V2 instance is about $0.26 USD per hour in South Central US region, so it’ll cost approximately $10.40 USD per week. Or about $42 per month, compared to $193 per month for the same instance size if it were running 24/7.


      1. $10 a week sounds good if there was some reason I could not run it locally. But if the latency is noticeable it would drive me nuts

      2. If your running an Android Emulator (Xamarin Dev), do they work at all on a Azure hosted VS/dev VM and if so how is the performance? I dev on the a Mac using Parallels for a Windows VM with VS, but always have to run the Android Emulators on the Mac side and tunnel to them as the Emulators do not like nesting under a VM. They throw error messages related to HAXM IIRC.

      3. The performance of any application running on a VM is going to depend on how many CPU Cores and Memory resources you’ve allocated to the VM. This is the same in Azure as it is on-premises or your local PC. You’ll probably want to choose a 4 or 8 Core VM instance size, I would imagine. The good thing is you can try one size, then resize bigger or smaller to find the optimal VM instance size for your desired performance and budget.

        As far as an error messages due to running the emulators in a VM, I note sure as I haven’t tried it myself yet. I’m guessing if it doesn’t like to run in a VM locally, it won’t in Azure either. The only sure way to find out is to give it a quick try.

  3. Mitchell Blott March 9, 2017 at 2:52 pm

    I have already used VS for some Azure testing from my own desktop. Pretty nice.


  4. […] Visual Studio 2017 Development using a VM in Azure  by Chris Pietschmann […]


  5. Chris,
    This is really a nice article.
    When you say ~$40 a month for development, I could use this configuration to develop a Web Application based on ASP.NET / IIS using this instance of Visual Studio?

    Any other pointer in this regard will really help.



    1. Yes you can! You can use the Visual Studio VM in Azure to build anything with Visual Studio that you would locally. With the exception of mobile apps as they do require the emulators to debug, and nested virtualization isn’t supported in all the VM instance sizes yet. However, you can certainly develop Web Apps with ASP.NET and target IIS or even Azure App Service just fine. 🙂


  6. Any issues with latency?


    1. The latency will depend on your Internet connection. There will be some compared to a local machine, of course, but from my own use it’s not unusable by any means.


  7. Jorge Garcia Garcia June 27, 2017 at 7:53 am

    It seeems that “now” a Visual Studio Suscription is required to use this Azure VM, and this sentence has been added in the detailed screen that appears when you click the selected VM in your Azure panel:
    “The Visual Studio software is preinstalled in this VM, but you must acquire a Visual Studio subscription separately which allows you to sign in to and run Visual Studio on this VM.”


  8. Hi Chris.. Is there any additional cost of VS 2017 on Azure VM, other than the basic VM Instance cost ?


    1. Chris Pietschmann September 20, 2017 at 8:21 am

      No there isn’t. If you have MSDN then you’ll be able to provision any VS VM. If you don’t, then only the Free Visual Studio Community will be available to you.


  9. Why Visual Studio Professional is missing?
    Why only community and enterprise?


    1. Chris Pietschmann September 20, 2017 at 8:18 am

      I don’t know why only certain SKU’s are available. That would be a good question for Azure Support. However, you will only see the full, non-community versions of Visual Studio in the Azure Marketplace if you have an MSDN Subscription. Everyone else will only see and be able to provision Visual Studio Community VMs.


      1. I have an MSDN professional subscription. I have created a VM with Win10 e VS Enterprise (just to try).
        Of course when I open VS I get notified that license is not valid. I will probably delete this VM, select a new SKU with Win10 only and ‘manually’ install VS Professional. Impratical…

      2. @Paolo – we used to support Professional, but almost nobody used it – a fraction of 1% of total usage of the VS images. Also, we disable the license to prevent piracy. You can activate the license through any of the nor mal methods – sign in with your MS account or use the “5×5” product key that came with your license.

      3. @Phil, thank you for explaination.
        I’m just a little unhappy also because I will have to pay for internet traffic download of VS 2017 Pro.
        This would not happen with a ready VM with VS Pro.

  10. I use an Azure VM for my development needs and absolutely love it. I start off with a clean Windows VM and then run my chocolatey scripts to install all of my software. At that point I have everything installed and can start developing.

    I typically develop Xamarin or Web work on my Azure VMs and I utilize my VPN connection to debug on devices or connect to my mac for iOS.

    A very important thing to remember when you try this: Make sure you shutdown your VM then deallocate it when you are not using it which will save you lots of money. Azure VMs for development because it saved me thousands of dollars on a new development laptop


    1. Chris Pietschmann November 5, 2017 at 11:28 am

      Thanks for sharing!! Awesome to hear 😎


  11. Really nice article, thanks for sharing!


  12. Will the public IP Change if we stopped the VM?


    1. Chris Pietschmann February 1, 2018 at 8:31 am

      If you deallocate the VM to save cost when not using it the public IP Address will change by default when you start it back up again.


    2. @Atif — The Public IP address is free as long as it is attached to a running VM. When you deallocate your VM to save money you’ll incur in cost for not using the allocated Public IP address. Last time I check it was around ~$2 USD / month per ‘inactive’ Public IP address.


      1. Chris Pietschmann May 5, 2018 at 4:58 pm

        There is only a cost for Static Public IPs since you are reserving that IP for only your use. Dynamic Public IPs do not have a cost, regardless if the VM is deallocated or running.

  13. Great article, confirming a path my organisation wishes to take to set up a small number of development VMs in Azure: we’ve already successfully trialled rolling up VMs with Visual Studio. One area, though, that we’re unsure of is how best to manage the creation of those VMs so that our network / infrastructure team can allow unrestricted access via RDC for each developer to their own Azure VM whilst signed in to our corporate network: the initial discussion has been around whether to create one ‘top-level’ low-spec Windows Azure VM to which we all connect, on which any network/IP restrictions are based, and then to connect again, once in that VM, to our own VMs. That, however, sounds cumbersome and I can’t help feeling that Azure already has a more efficient scenario for managing multi-developer environments: have you any recommendations in that area, or resources which suggest best-practice ? Thanks.


    1. Chris Pietschmann February 9, 2018 at 4:23 pm

      While a “jump box” would make it more secure to be able to connect to and configure multiple VMs in the same VNet, it doesn’t really work well for an enduser VM like a VS’2017 VM in Azure. You’ll want to allow the devs to connect directly to their VMs. To do this more securely, you could setup a VPN to connect so they aren’t exposed directly to the Internet. Also, you may want to look into Azure Dev/Test Labs, as that offers more capabilities to shutdown and restart VMs to help save hosting cost for Dev and Test scenarios.


      1. Phil Lee (MSFT) February 9, 2018 at 5:29 pm

        @Rob – I like the direction Chris is going. This is the way my team tests the VS images before we publish them. We have a long-standing VNet/subnet with a custom network security group. The NSG has rules – one per address range for our corpnet. Downside is that you can’t connect directly from home. We have to VPN to corpnet and then connect from there. Not a big deal, but an extra hop. Happy to send the PS script. Might already be one on GitHub…

  14. “There is only a cost for Static Public IPs since you are reserving that IP for only your use. Dynamic Public IPs do not have a cost, regardless if the VM is deallocated or running.”

    @Chris Pietschmann I wasn’t aware of the new dynamic public IP and the benefits it provides over a public static, that’s great news. Thank you for the heads up!

    When you combine the use of Dynamic Public IP in a VM using Azure-provided DNS you can refer to the VM by its FQDN like is pretty convinient because you avoid having to update all the reference pointing to your VM (e.g. RDP file).


    1. Chris Pietschmann May 8, 2018 at 5:23 am

      Dynamic public IPs are not new. It’s how Azure has done it all along.


  15. Hey, I want to have a remote compiling build machine on azure to assist me with local c++ builds.
    How i can do this?
    I need an image with a windows without user interface and just the c++ compiler installed.
    I can use say fastbuild for this task, which sends builds to machines with known local ip.

    Thanks in advance


    1. Chris Pietschmann June 25, 2018 at 11:12 pm

      You can create a VM in Azure, and install / configure it just the same as you would with a VM on-premises. You also may find it useful to leverage Visual Studio Team Services (VSTS) for performing automated build tasks.


  16. Hi Chris, we’re thinking about putting our own Dev tools into Azure side-by-side with Visual Studio. But I’m wondering what the uptake is really like? Are you able to share any figures on usage of VS in Azure just to give some indication of usage? Are we able to see how many VS based images Azure is running, for example? Many thanks


    1. Chris Pietschmann July 14, 2018 at 10:22 pm

      I don’t know of any usage metrics, but I know the VS images are used quite a bit. What specific questions do you have about using the VS images to do development? One thing you’ll want to look at is that if you have an MSDN subscription then you can provision VS Enterprise VMs, otherwise any standard Azure Subscription can only provision VS Community VMs. Also, MSDN Subscriptions give you access to provision Windows 10 Desktop VMs as well in Azure.


  17. Just mentioning something that I did not expect. I use 3 4k 28″ monitors at work (and at home).
    RD fully supports using ALL of them at the same time. A *little* laggy when dragging things around, but that does not bother me. No real log typing etc. But the big payoff is our database’s are all in Azure. The difference in speed of running in the cloud when doing development for them is HUGE. I cannot go back and I use this exclusively. At work we have a 100/100 fiber, but at home I am just on cable internet and the experience on both is 100% acceptable.


    1. Chris Pietschmann December 5, 2018 at 2:47 pm

      Great! Thanks for sharing!


  18. […] This can be an extremely valuable tool for any software developer, and has been possible with Visual Studio 2017 for some time now. With the first public release of Visual Studio 2019, you can now run a Visual […]


  19. […] The Visual Studio 2019 virtual machine install could not have been easier. I took the easy route and installed it from the packages available in the market place. This article was a good read to point me in the right direction: […]


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.