Is it possible to set up a virtual machine so that I can run my development environment in Linux, but I get all the changes synced back to Windows? I can then use Visual Studio for editing the code.
You can always use a shared folder that is mounted in your VM. For example, create a folder in Windows, share it using the virtualization software you have and open it in Linux. All your changes immediately affect the "real" Windows folder.
To give you a more concrete example, in VirtualBox you go to the settings of your virtual machine, then to shared folders. Here, create a shared folder that maps to some folder on your Windows drive.
In the Linux VM you first have to install the guest additions for Virtual Box. Then, use something like