A Windows VM for development comes down to a hypervisor (Hyper-V, VirtualBox, VMware Workstation), an ISO, and 20 minutes. The right pick depends on the host OS and the workload.
Table of contents
- Pick the hypervisor
- Get the Windows ISO
- Create the VM
- Install Windows
- Install the tools
- What usually breaks
- The development workflow
- The performance optimization
- FAQ
Pick the hypervisor
Three choices, based on the host OS:
- Windows host. Hyper-V (built-in, free) or VMware Workstation (faster, paid).
- macOS host (Intel). VMware Fusion (free for personal use) or VirtualBox (free, slower).
- macOS host (Apple Silicon). UTM, Parallels, or VMware Fusion. Performance is limited by the ARM translation.
- Linux host. KVM/QEMU (best performance), VirtualBox (easier setup), VMware Workstation (paid).
The team that already uses Hyper-V or VirtualBox should stay with it. The team that needs the best performance uses VMware Workstation (Windows/Linux) or KVM (Linux).
Get the Windows ISO
The right way to get a Windows ISO:
- Go to microsoft.com/software-download/windows11 (or windows10).
- Download the Media Creation Tool.
- Use the tool to create an ISO file.
The team that uses an evaluation ISO (Windows 10 Enterprise Evaluation) gets 90 days of free use; the team that wants long-term use needs a license.
Create the VM
The right VM configuration for development:
- CPU: 2-4 vCPUs. More for build-heavy workloads.
- Memory: 8 GB minimum, 16 GB for Visual Studio.
- Disk: 60-100 GB dynamically allocated. The team that uses fixed-size disks gets faster I/O but uses host space immediately.
- Network: NAT or bridged. NAT is the default; bridged gives the VM its own IP.
The team that allocates all the host’s memory to the VM gets a frozen host. The right rule: leave 4 GB for the host.
Install Windows
The install takes 15-25 minutes:
- Boot the VM from the ISO.
- Click through the install dialogs. Use the “Custom Install” option.
- Wait for the files to copy and the system to reboot.
- Complete the Out-of-Box Experience (OOBE).
The team that skips the OOBE (using an unattend.xml file) has an unattended install for fleet deployment.
Install the tools
After Windows is up, install:
- Hyper-V Integration Services / VirtualBox Guest Additions / VMware Tools. The guest additions that make the VM usable (shared clipboard, drag-and-drop, dynamic resolution).
- Windows Terminal. The right terminal for command-line work.
- PowerToys. Microsoft’s productivity utilities.
- WSL2. The Windows Subsystem for Linux. The team that wants Linux inside Windows uses WSL2.
The team that skips the guest additions has a VM with a stuck 1024x768 resolution and no clipboard sharing.
What usually breaks
The four pitfalls:
- Activation. Without a license, the VM has a watermark and limited personalization. The team that wants a clean desktop needs a license.
- Slow disk. Dynamic allocation is slow; fixed allocation is fast. The team that needs performance uses fixed.
- Network not working. NAT is the default; the team that needs the VM on the same network as the host uses bridged.
- Time drift. The guest clock drifts. The team that runs the guest tools handles this; the team that doesn’t has Kerberos and TLS errors.
The development workflow
The right workflow for a Windows VM used for development:
- Create the VM once. Build a “golden image” with the OS, updates, and common dev tools pre-installed.
- Snapshot before changes. Take a snapshot before installing major updates or new tools.
- Use shared folders for code. Mount a host directory as a shared folder; edit code in the host’s editor (VS Code, Sublime), save to the shared folder, build in the VM.
- Use the VM’s tools for what it’s good at. Visual Studio for .NET, IIS for web, SQL Server for databases. Use the host’s tools for cross-platform work.
The team that uses the VM only for Windows-specific work and the host for cross-platform work has the best of both worlds.
The team that uses the VM for everything (including cross-platform work that’s faster on the host) wastes the host’s performance.
The performance optimization
Tips for getting the most out of a Windows VM:
- Install VirtIO drivers (KVM) or VMware Tools. Without them, network and disk I/O is slow.
- Allocate enough RAM. Windows + Visual Studio needs 16 GB. Less and the VM swaps constantly.
- Use a fixed-size virtual disk. Dynamic disks are slow; fixed disks are fast. The trade-off: fixed disks take the full size immediately.
- Enable nested virtualization if running Docker or WSL2 inside the VM. Disabled by default; requires host CPU support (most modern Intel/AMD CPUs).
- Use paravirtualized network and disk drivers. virtio-net and virtio-blk on KVM; vmxnet3 and PVSCSI on VMware.
The team that optimizes the VM gets near-native performance. The team that runs the VM with default settings has a sluggish experience.
FAQ
Is Hyper-V free?
Yes, on Windows Pro, Enterprise, and Education editions. Not on Windows Home.
Can I run a Windows VM on a Mac with Apple Silicon?
Yes, with UTM, Parallels, or VMware Fusion. Performance is limited by the ARM translation. Native ARM64 Windows is faster but has fewer available apps.
How much RAM should I allocate to a Windows VM?
8 GB minimum, 16 GB for Visual Studio. The team that allocates more than the host has free has a frozen host.
Can I run Visual Studio in a Windows VM?
Yes. The team that needs Visual Studio should allocate 16 GB RAM and 4 vCPUs. The team that uses VS Code (lighter) can get away with 8 GB.
Should I use Windows Pro or Enterprise in the VM?
Pro for most development. Enterprise for features like AppLocker, DirectAccess, and Windows To Go that most dev workflows don’t need. Enterprise is more expensive.
Can I run Docker in a Windows VM?
Yes, with Hyper-V nested virtualization. Windows containers require Windows Server or Windows 10/11 Pro with Hyper-V enabled. Linux containers can run in WSL2 without Hyper-V.
What’s the difference between Type 1 and Type 2 hypervisors?
Type 1 (bare-metal) runs directly on hardware: Hyper-V Server, VMware ESXi, KVM. Type 2 (hosted) runs inside a host OS: VirtualBox, VMware Workstation, Parallels. Type 1 is faster; Type 2 is easier to set up.
If you are sizing the infrastructure for the kind of project this post covers, the RunxBuild hosting calculator is the right place to model the line items. The compute, the memory, the storage, the bandwidth, the database - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual usage in one place.
Useful related references: