I like to develop inside a Virtual Machine. The advantages of this are:
- The environment is portable, so I can move it between machines;
- I can backup and/or snapshot machines so can recover quickly in the event of some failure or error;
- I can set up different machines for different workflows (e.g. one for API dev, one for Mobile dev etc.)
- I can replace my physical device without going through the pain of rebuilding my development environment, and;
- I can use any OS on my physical device
I use VirtualBox to host my guest machines – I’ve tried Microsoft Hyper-V, but for whatever reason it just lacks the performance and flexibility that I’ve found with VirtualBox.