Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do you deal with different project environments? Every project might require a different database (oracle, IBM db2, mysql & etc), a different server (tomcat, IBM WAS, weblogic & etc) or some other new technologies.

Every time a new database or new server comes in, I install them on to my workstation for my convenience. Right now I have more than one database and server on my workstation and it has caused my workstation take some time at startup. I have to wait a period of time for my workstation to be ready for me to start working. Sometimes when I install database A, it causes my previous database B to have issues. I found that this will take a lot of my cpu usage although I'm not using them at the moment.

In this case, I can think of only one method, I can install the databases on to one virtual machine and the servers on to another virtual machine. Or one project environment one virtual machine. Then I can start just the one that I need it.

What do you think?

share|improve this question

The solution you mention is the one that I use. I am provided with VMware Workstation which makes it extremely easy to switch environment. I use one "dev" machine (or two - one for win7 and one for ubuntu). I then use multiple "production" environments which have different structure depending on the requirements. In the case of databases, I connect from my dev-vm to the specific database server on the production-vm. This works very well for me.

share|improve this answer
so.. you do programming inside your dev-vm, its a bit slightly different with me, I develop in my workstation by connect to specific vm. – 50LV3R May 31 '11 at 5:34

IMHO have a set of glue scripts that take into account the installation, maintenance and sanity testing of the project environment. You and other programmers of the project should use the scripts for accessing the system.

You should be able to find several such scripts on the net, and you might have to do an integration scripting to wrap around these glue scripts.

This simplifies the abstraction, and is basically an extension of the bridge pattern programmers use in s/w development.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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