For quite sometime now, I’ve been developing all the projects I’ve been working on directly on my machine. This is handy for a number of reasons, the most important of those reasons being that I don’t have to be online while I’m working and I don’t have to upload to any servers.
I recently read an article in a Sitepoint newsletter I’m subscribed to about using a virtual environment, hosted on your machine, as a development environment. For those that don’t know what I’m talking about, it basically means running another operating system, like Mac OS X or Linux, or even another copy of Windows, from within my native Windows installation. Why would you want to do this? Because the vast majority of web servers out there are NOT Windows servers. This is an important factor in all of this, because while most of the software that is used to run websites has been ported to the Windows environment, there are still subtle differences and quirks that occur between those versions. If I can develop within the environment that I’m likely to be deploying to, I will eliminate a good number of those quirks. This is a good thing, because there will be a smaller number of tests to go through when it comes time to deploy the site to the production environment.
Ideally, I would have a completely separate machine to develop my applications on that would host an environment similar to the production environment natively. However, I don’t have the funds to do that, so a virtual environment is really the only feasible option for me. A handy side effect of doing it this way, is I get to practice my server administration skills, which will inevitably come in handy later on.