This post originated from an RSS feed registered with .NET Buzz
by Peter G Provost.
Original Post: Using VPC as a Development Environment FAQ
Feed Title: Peter Provost's Geek Noise
Feed URL: /error.aspx?aspxerrorpath=/Rss.aspx
Feed Description: Technology news, development articles, Microsoft .NET, and other stuff...
I've had a number of people in weblog comments, email and in person ask me questions
about using VPC as a development environment. So to share the information with everyone,
I thought I would answer them in one big post.
Q: Why do you install Office (or any other application) on your host machine?
Why not just leave it an empty XP install?
Most people who ask this question misunderstand the whole reason for using VPC for
your development environment. Sure, I try to install as little as possible on my local
machine in order to extend its life, but honestly I still expect to repave twice a
year. Sorry. That's just the way it goes.
The reason I use VPC for development is that it lets me have a clean, predictable
development environment when I need it. All I have to do is copy the image file into
my local machine, boot it up and get to work. I know exactly what is installed on
it (and what is not).
Q: So does it work? Can you actually work this way?
Yes it does. There are some situations where it doesn't work well, so you still
end up installing stuff on your local machine. For example, if you want to develop
for Windows Pocket PC, you can install the development tools in a VPC, but you can
not run the emulator. (I am working on this.)
Another thing that requires planning is how you deal with MSDN. The way we handle
it to do a "Network Install" of MSDN to the local C: drive. Then in the VPC we set
a persistent share to that folder and run a minimal install into the VPC image. That
way the majority of the MSDN content lives in only one place and all of your VPC images
share it.
Q: Are there any other problems?
I can think of one problem in particular, but it is essentially a VPC problem and
has nothing to do with using it for development.
VPC installs a special Network Service that attaches itself to every one of your network
adapters. This allows VPC to piggyback the adapter, allowing your client OS to run
on your local network. Sometimes, and no one seems to be able to tell me why, this
system completely hoses your network drivers. So your entire laptop loses its network.
Ugh.
However, there is a workaround that solves the problem 80% of the time. If you have
this problem, go into your network adapter properties for each adapter on your system
and uncheck the box next to "Virtual Machine Network Service". Reboot. Your problem
should be solved.
The reason you don't care about this is that even with this service disabled, your
guest operating system will still be able to connect to the network using Shared Mode,
which is essentially a mini-LAN on your computer. VPC uses NAT to isolate the guest
OS from the outside world. So you can browse the network from the guest OS, but nothing
can get back in.
Q: What about developing client/server apps?
If you need to develop client/server systems with more than one guest OS talking to
each other, shared networking won't work. And if you are one of the unfortunate people
who had to disable the "Virtual Machine Network Service", then you have a problem.
But don't worry, because I have a solution. The trick is to use the MS Loopback Adapter.
You can install the Loopback adapter from your Windows XP CD. Basically the Loopback
Adapter is a make-believe network adapter. It isn't actually connected to any outside
network. But it can connect to other virtual machines that are also bound to that
adapter.
So you configure the local Loopback adapter to have a static IP address (I typically
use something in the 192.168 subnet). Then you configure each guest OS to use the
loopback adapter, and you give each of them a different IP address. That's
it. It just works. Your local machine can talk to the guest OSes and the guest OSes
can talk to each other.
For more information about this, see the Virtual PC Help File section titled "Install
and configure Microsoft Loopback Adapter".