Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have my development machine (a laptop, since I do often go onsite to a client) setup like this:

  1. Windows 7 x64 - it's a great OS, and the 64 bit version let's me put in a lot of RAM
  2. 8 GB RAM
  3. VMWare - I used to use Virtual PC, but VM Ware has so many features that I prefer, like support for USB etc.

I develop primarily in .NET and I setup the development environment like this:

  1. Very little (if any at all) developer tools on the host. Mostly I just have Office, Photoshop, etc. things that are independent from actual development
  2. I have a different VM for every client. This allows me to configure the VM to their evironment, and in fact I have several clients where my VM is actually joined to their domain. Every client's VM runs on its own external drive! Putting a VM on it's own drive makes your VM run much faster. I use laptop hard drives in small drive cases, very easy to put in my laptop bag, and each drive has a sticker with the client's name so I can easily grab the right external drive. I usually allocate about 3.5 - 4 GB of RAM to each VM.
  3. On the VM I have all the tools I need to work for that particular client, including VPN software, developer tools (SQL Server, VS), etc.
  4. I have a few VM's that are "client agnostic", and these run server software (Wink2k, Win2k3, Win2k8) with IIS etc. for testing deployment, etc.
  5. I have GoToMyPC set up so I can access the laptop from a remote location in extreme emergencies.

In the past I have been set up differently, with the development environment set up on a beefy server running everything, and I just RDP in, so the laptop doesn't have to be that robust (it's basically just painting the screen), and I can access from anywhere. There are pluses and minuses to this, mostly that sometimes I like to develop when I am not able to connect to the internet, and my development is hindered anytime my internet connection speed is slow or lagging.

How do you set up your development machine? Feel free to take this in any direction you want. . .

Note: The only thing I would change about this is more RAM, and for multiple hard drives in my laptop so I don't have to carry around so many external hard drives.

share|improve this question
add comment

closed as off topic by Mark Trapp Feb 8 '12 at 23:44

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

up vote 4 down vote accepted

I just install the tools I need once (per computer).

I put a lot of effort into making my projects as portable as possible. They shouldn't have to depend on a specifically setup or configured environment. Any machine with Visual Studio and [Git/Hg/Svn] client should be able to get the latest source and just run it. I believe this makes collaboration easier, makes me more flexible and minimizes the hassles with testing and deployment.

share|improve this answer
    
Wow. That's actually very true. lol However there are a few things that make having a different VM for each client a necessity. Some VPN clients don't play nice with each other (i.e. can't be installed on the same machine together, and also it allows you to join the clients domain. –  Richard DesLonde May 22 '11 at 19:16
    
You can't always get rid of all dependencies, but I think it's something to strive for. I'm curious why you need to join their domain though. Whatever resource you use there, can't it be faked/duplicated locally? –  rmac May 22 '11 at 21:23
    
+1, having just been the client going through the process of decoupling a complex app from the vm they were building it on. Portable code uber alles. –  Wyatt Barnett Feb 8 '12 at 14:48
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.