Found many similar questions, they mostly 2-3yo and software/hardware moved forward.
I develop with Microsoft technologies. Enviroment consist of IIS, SQL Server, Visual Studio 2010, etc, etc. I also develop for Android so I have JAVA, Android SDK, slow-starting emulators, USB debugging, etc.
Right now it’s Wind7 but I may move to Windows 8 soon.
I keep all files on server, source code check ins, etc. However, just to restore my environment I need couple days.
Currently I have Lenovo W510 with i7-820 CPU, 10G RAM, SSD and this system does OK for development. Now it broke and I’m out of commission for 3 days until I get them to fix it. Rebuilding my setup on different hardware will take long too..
My questions is:
Can I have same level of performance on stronger desktop hardware running virtual? Ideally I want faster system. I work with XAML a lot and I’m not sure how this graphics stuff will work in virtual environment.
Anybody does similar development on virtual setup? Any suggestions? Gotchas?
Right now I’m thinking about something like this:
- Powerful desktop – like Xeon, quad-core, 16Gb and 2 SSD in RAID0 (Since I can take backups of image)
- Keep my laptop if I need to be mobile – just copy image over(I need to travel rarely so it’s necessary to be mobile with my setup)
Will I get better system this way?
EDIT:
I do lot of XAML development, is that going to work?
From what I just found seems like it might be a problem…
Is WPF development feasible under VM?
If your ultimate goal is to reduce downtime by doing all of your development work in a virtual machine that’s backed up and easily restored, go for it. No matter what, you will experience some performance loss, but with today’s hardware I haven’t really had any issues.
We have the advantage of having an environment in which almost every server is virtualized, so the next thing I’m about to say is supported in our infrastructure, but may not be in yours:
We have our IT staff set up virtual development machines on our VM Hosts, and simply connect to them via RDP (Remote Desktop Protocol) from our workstations (when we’re at work) our laptops (when on the road) and our home computers (when at home, and a late-night support call comes in). If you have an environment where you can do so securely (including multi-factor authentication, encryption over the wire, and all other security concerns) that may be an option.
Another option may be to use a hosted PC. Plenty of providers now offer virtual desktop hosting, which allows you the benefits I enjoy in my environment without having to deal with the overhead. But it’s not free.
I found a bunch of them by searching Google for “hosted windows desktops”.
For me, personally, I’ve hosed up my development PC more times than I can count, but not at all in the last two years. Over time, I’ve learned what types of things can hose it up. (3rd party installs, etc) and have adopted a policy of setting up and using a virtual PC to test anything risky.
I use my normal development PC for most things, and avoid risky behaviors, and reserve virtual machines for when I am about to do something risky.