Tuesday, May 22, 2007

To Vista or Not to Vista

This topic is from a .Net software developer's perspective. I also do some PHP/MySQL development, but I have not had the need to install the PHP engine or MySQL onto my Vista box yet, so it is outside the scope of this post.

There are both advantages and disadvantages to using a Vista box for .Net development, however as of this writing, in my opinion, the disadvantages outway the advantages. So what are some of the things to consider before jumping on the Vista bandwagon?
  • Are you doing .Net 1.1 development? If yes, I would caution against your tried and true XP environment. Why? Visual Studio 2003 is not "supported" in Vista. Yes I know there are lots of posts about workarounds, hacks, etc to run it in Vista, but really... just because you can doesn't mean you should. If you need to use VS 2003 to support customers or hosting companies that haven't made the jump to 2.0 Framework, you will probably find yourself running XP in a VPC. That doesn't sound so bad, you say. True, as a developer you are probably already familiar with VPC for some reason or another, but there are additional considerations for using a VPC image to do production software development. Among those include infrastructure concerns. Some of the concerns are listed below:
  1. Backup method (every day you work on anything in the image would flag the whole image for backup, Yikes that eats storage space quickly).

  2. Installation of common helper software like Visual Source Safe, SQL Server, Excel (for maintaining revision history data and/or local export to Excel testing) on both the VPC and the host. Sure you can have SQL Server set up on just the host, but that brings up additional more advanced VPC network configuration requirements. VPC 2007 provides new functionality to make that easier, but what if you are doing development on a laptop without a private network available? Now you have to configure loopback connections, etc.

  3. Configuration of the VPC for optimal performance. VPC 2007 appears to have significant performance improvement over 2004, but you are still truncating the available resources of the PC.

  4. It certainly complicates separating your data from your OS/applications.

  5. Windows updates on the VPC and the host (hate those pesky please restart now messages). Ever tried to debug an app you are developing that just doesn't seem to work right until after you realize Windows installed updates, but you decided to hold off on the restart until later? After the restart the problem vanished as if by magic.

  6. Need to do testing on IE 6 when your development VPC has IE 7? Now you need to transfer files from one VPC image to another to test IE 6. Hope you have a lot of Ram or time to transfer the files from the VPC to the host or a storage location, then close that instance and open the next VPC.

  7. Ever try to do a show and tell at the customer on the projecter using a VPC and the VPC would not go into full screen mode? Yuck.
  • Now you need to understand the configuration process for IIS 5, IIS 6, and IIS 7. You will have to anyway, but based on the above, you are probably already spending more time on workarounds than what pays the bills (development).

This sounds like a rant, but it is really intended to help you make a (more) informed decision, before making a transition that is not quickly or easily reversed.

Vista for use at home is a pretty easy decision in my opinion. If you have the hardware to support it and you checked to make sure the software you use runs on it (trust me, don't skip the Vista hardware and software compatibility checks), I would do it. Vista has lots of consumer features (read "looks cool") and parental controls if you have kids. Don't be too surprised if you have to go find and install the latest drivers for your video card if you or your kids play games like WOW or Warcraft III. And kids can be less patient than the CEO regarding unexpected downtime.