I’m on a Mac OSX. It’s my preferred environment. But all my corporate clients are Microsoft shops. So that means, I need to develop/test websites that run on Microsoft IIS servers (running ASP, or ASP.NET C#) and using Microsoft SQL Database Servers.
Back then, I used to have (2) Windows servers on my server rack. Big honking machines, 4u rack tall. Noisy as hell. It’s my development server running IIS Web Server and SQL Server. I’ve setup my servers to mimic my client’s production server as close as possible, in terms of installed software. It’s also my file server, where I keep all my files on a RAID drive setup. Got a big 3u rack UPS also on the same rack, and a 12-port 100MB-Fast Ethernet switch.
So you get the picture? I have my workstation, and I also have a separate Windows server machine. All plugged in, running 24/7.
Fast forward today… I retired my hardware servers, and now instead run my Windows IIS Server and SQL Database Server as VMs inside my Mac OSX. I run the web browser on the Mac side, to access the virtual host running in Windows/IIS server on the Windows/VM machine. In addition, I can also develop using Visual Studio on the Windows side, without the need for a separate Windows laptop/PC. It’s all living inside my Mac machine.
My office is now quieter, much cooler… without the constant hum of my server fans. In addition, I can run different versions of Windows (anywhere from 2000, XP, 7, 8 to 10) on the same Mac machine. If I need to test how a website will work on a very old IE version or whatever, I can do so easily.
Oh, and it’s not just limited to Windows VM. You can also run other kinds of OS, like Linux. The nice thing about a VM is you dont have to triple boot, you can run all OS/VM at the same time.
OSX running an Ubuntu VM and a Windows 10 VM (showing Visual Studio 2017). On the Windows machine, you can see various versions of Visual Studio, and different versions of SQL Server (2012, 2014), + the IIS Web server.