views:

1477

answers:

20

Recently I have purchased a notebook that cames with Windows Home Basic (that don't have with ASP.Net/IIS. I thought in upgrade the Windows version to one with ASP.Net/IIS, but I thought in another possibility:

I have an Hard Disk Case with a 360Gb HD. I thought in create a virtual machine with Windows Ultimate (installing too ASP.Net, IIS and Visual Studio 2008) in this HD Case, then I can access my "development enviroment" in any computer that I will work on (my desktop machine and my notebook).

But I was worried about the performance. I don't have experience working in Virtual Machines (I use it just to quick compatibility tests)...

Are you using Virtual Machine as your primary development enviroment? What your finds?

====================
Thanks for your answers! It really did help me! I would like to know too about portability ie.: the virtual machine that I created in my laptop will work in the desktop? I will need re-activate Windows?

+2  A: 

Yes, I use VMWare workstation 6.5 and ESX 3.0 for my servers. Works like a charm. No noticeable performance penalties.

Otávio Décio
+3  A: 

No, but use it as test machine when I am testing web pages in IE.

Mohamed
+2  A: 

I have used VM's for development in the past, and I use them a lot for testing of various sorts. Using a VM for development works quite well, the only thing I would caution you on is that some external hard drives are quite slow, which may give you a problem, but fast drives work well.

ScottS
+9  A: 

Working with a virtual machine is fine as long as you have enough RAM for both operating systems.

You should also be aware that virtual machines have some limitations e.g. when it comes to supporting graphic cards, so you'll want to make sure that whatever you are developing does not depend on a feature that is not available on your virtual machine.

ISW
this is the sole reason I decided not to establish a VM-based dev environment, although I've used them in the past for testing
Andy Dent
+12  A: 

I use VMWare and Microsoft VPC-based VMs quite a lot, hosted in a Quad 6600-based XP Pro box.

My use of VMs was initially to test in different environments, and for debugging I've had to install SQL Server and VS2008 in one or two of them.

For those purposes, VMs are very convenient.

But based on that experience, I wouldn't make a VM my primary dev environment, simply for performance reasons. VM performance is surprisingly good, but the difference (for pretty much everything), although not huge, is enough to notice.

When I'm compiling dozens of times a day, running big queries, etc, etc, I don't want my dev machine to be any slower than it absolutely has to be.

ChrisA
A: 

I use Parallels on a Mac - have no issues.

At work we use VMs for most of our test environments - they work very well

Fortyrunner
+1  A: 

I use VMWare Fusion on a Mac to run Windows Server 2003, Visual Studio and all my IIS requirements.

I have no problems, but my Macbook pro does have 4GB of RAM with 2GB allocated to WMVare when it's running.

John
+1  A: 

My primary Windows development environment is a native Vista x64. For the graphics card reasons mentioned above and (possibly unfounded) concerns about the VM environment and debugging, I decided I still wanted a native environment for my .Net and Windows Win32/64 development. I'm working a lot more in GUI development at present.

However, one very important kind of development I've used VM's for in the past is Python-based programs, whether pure Python with wxWindows or embedded Python called from C++. Using a VM allowed me to control the Python environment and work against different installs that were guaranteed to match the deployment environment. I'd suggest this for anyone using a dynamic language where you tend to install lots of external packages and it's hard to cleanly revert to earlier versions.

Another thing to consider is using a VM as your target with a remote debugging nub. Many REALbasic developers on Macintosh do this for their Windows testing (REALbasic has fabulous cross-platform debugging) but I've also used it in the past for Visual Studio.

Andy Dent
+1  A: 

I'm using Ubuntu as my linux development environment on top of Vista 64.

The machine has a 10k drive, lots of fast memory, and a dual core CPU, so it runs very well. I ended up with this hodge-podge because, at the time, I built a machine ubuntu wouldn't run on, and going VM was the easiest way to deal with that. I've found it's quite convenient, though, so even though ubuntu would likely be fine with the machine now, I'm staying with the VM.

Makes it trivial to fully back up my dev environment and take it offsite or distribute it as well (ie, GPL compliance is a cinch - no need to work with people trying to get a dev environment set up for them and deal with the quirks of versions of software, etc)

Needed for embedded ARM linux development.

Adam Davis
A: 

I used to use a virtual machine as just a sandbox to keep unruly applications from doing unruly things. (Sandboxie is an awesome program for this) but I always ended up forgetting to keep them contained and would just reinstall windows every now and then, much easier than constant maintenance really.

As for a virtual machine you're screwed on the hardware you have available as your bios and hardware are all emuated. Makes for writing something low level practically impossible in certain circumstances. However when using a hosted server on a virtual machine through a remote desktop connection... Absolutely wonderful, so easy! I can be in and out in a couple clicks, so I guess that's the number one virtualization I use.

Xedecimal
A: 

VMware to debug device and filter drivers. VirtualBox is nice and fast for occasional Ubuntu, and an XP holding IE6, FF2, Chrome, Opera, & Safari for testing and installs of apps i don't trust.

Scott Evernden
+1  A: 
prestomation
+3  A: 

I have been using VMware since 2002. My first use was to create a development environment in a guest VM, then replicate it for my teammates. When it came time for a hardware upgrade, I switched to my new desktop in about an hour (install VMware, copy VM).

I use VMware constantly, on desktops, on notebooks, and on servers. I use them for development, testing, and production. I have tried playing games inside a VM, but most games just don't cut it (and VMware says so, but I tried anyway). However, the newest VMware Workstation versions just might play a few games okay.

I particularly like VMware on my laptop, and I really like to use it for Ubuntu Linux. I find it best so far to use Windows (2000 Pro SP4 or XP) for the host OS because of the superior device drivers. However, I prefer to actually work on Ubuntu for my development, but that works great in a VM. I have installed Ubuntu directly on various hardware, but so far have not been satisfied enough to leave it for more than a few months before reverting to Windows again.

However, my laptop does run Ubuntu nicely, and I only reverted back to Windows XP because I want to load an eSATA card that will give me high-performance access to an external hard drive to...run VMs!!! I have not yet done that install yet due to distractions at work.

Speaking of work...I have "acquired" three old orphaned desktops that I am turning into VM hosts. I am about to attempt loading VMware ESXi, although I just finished loading two with Windows 2000 Pro SP4 and VMware Server 1.0.8. I manage a development team, and I am primarily targeting these VMs for development environments since our company cripples our primary desktops/laptops too much for real work.

Drink the Koolaid!!! VMware is awesome, and there are lots of other good VM options as well!

Best wishes.

EDIT: more goodies...

In particular, check out VMware ESXi, VMware Server, and Ubuntu JeOS. Yummy stuff!!!

Rob Williams
A: 

I have a Windows 2008 Hyper-V machine that runs a couple of my development environments. It's not slow at all (that I can notice). Some of my environments are not virtualized though. Usually if the setup requires something where rollback is difficult, then I'll use a virtual machine, if not, I'll just use a desktop. Keep in mind licensing costs. If you're going to virtualize a copy of windows server, you're going to need a license for windows server as well. It's probably cheaper for you to upgrade your Vista Home Basic to a version that runs IIS (although my suggestion would be to run Win 7 beta since it's free and then upgrade to the final version of win7 when it's ready)

ajma
+1  A: 

Regarding portability; assuming the same architecture (and operating system), then the virtual machine should run fine on both physical computers. Provided the hardware configuration of the VM doesn't change too much, you shouldn't need to re-activate Windows within the VM.

Rob
+2  A: 

I have been using VMWare as my primary development environment for a couple of years now.

Some Environments I typically switch between

  • Windows Forms / WPF Development (XP, .Net 3.5)
  • Ruby Development - did one website in ruby (XP, Instant Rails)
  • ASP.net 3.5 - for playing with new stuff (XP, .net 3.5, IIS, SQL Server)
  • ASP.net 2.0 - sometime places are still stuck on 2.0 (XP, .net 2.0, IIS, SQL Server 2005)

Some things I have learned

  • Use XP not Vista. When you are running multiple vms, the extra fluff is really noticeable
  • Give each VM around 1gb (sometimes as little as 512MB). You want to give them the least possible that prevents swapping for what you regularly do.
  • Keep a snapshot of the base install for your stack, before doing any development.
  • Quad Core + 8gb ram is cheap now. I typically have several vms running while developing. If you have less ram or cores, keep the number of running vms down.
  • Turn off software mouse cursors and run in full screen mode (most people don't realize it's a vm until I show them).

Benifits

  • I can be up in running in any of my major stack in 5 minutes on any pc I own.
  • I can move my entire development environment onto a laptop or another pc in a pinch.
  • I can keep separate dev stacks around easily that can otherwise step on eachothers toes.
Alan Jackson
+1  A: 

I run Ubuntu as my primary OS, and then use a Windows 2003 virtual machine (using VirtualBox) to develop in Windows. Mainly use it for Visual Studio 2008 web development. Been doing so at home for 3 years, but now in the process of trying it out at work.

Works fine, even with ReSharper and a solution of around 50 projects. It's not quite as fast as if I run it all via Windows directly, but having one nicely setup virtual machine means I can share it with other developers, plus easily switch between vms (we're looking at trying out Windows Server 2008).

Also means I can use Windows but then let Linux take care of things like IM, Firefox, Music (of course), Indexing (tracker), FTP, etc... Plus I have the terminal at my disposal (grep, ssh you name it).

We tried this with ghost images of Windows but found that as people have different hardware the image wouldn't always work.

Bealer
A: 

Now that it's been almost a year, are you guys still using virtual machines as your development environments? I used to, but have stopped since performance is getting bad. Just wondering.

Alex
+1  A: 

I run Windows 7 64bit on my lappy with 3 GB Ram (Yes it's low).

I find running my dev environment on VM's a pain in the butt really. When I have 5 IDE's open, SQL Server 2008, NotePad++, OxyGenXML editor, and Chrome/IE/FireFox all open in my VM, then my main machine has Outlook, OneNote, and a few other programs running it turns to crap.

Using multiple monitors isn't easy with VM's either, especially if you take your laptop away lots ofo times, then hook it back up. the resync is time consuming.

My other co-workers have the same issues even with 5-6GB ram.

If I added up all the time wasted waiting for my the extra processing the VM Causes, it would be more than what it would be if I had to re-do my computer from scratch - which takes under 8 hours.

Ryan Ternier
+1  A: 

This depends on situation really. Most horrible environments I've encountered in corporate world is Windows laptop + Linux virtual environment (where the laptop itself isn't top of the breed, I dislike having laptop as a development machine in the first place). I'm mostly a java developer, and like to write much unit tests, and usually with this combination (I'm really not wanting to use one, but well, I'm just lazy to complain all that much) running unit tests takes hell of a lot time.

Of course this depends on types of test, but in this case my guess is that disk I/O is just slowing things down. I just like to compile and test much, so that's the main reason I'm in favor of native environments: speed. Even a little notch on that sometimes feels too much. Sorry for not answering on a bit broader scope and very subjectively.

Haju