Friday 21 May 2010

Web development and Internet Explorer 7

For the past six weeks, I've been doing contracting work involving working on an enterprise web application using ASP.NET. In the final week of the project, one of the problems raised by the tester was that the web site did not display correctly in IE7. I first did web development back in 2000, before I moved overseas for the first time, and even then the worst part of the process was getting web pages to display in the then current versions of IE.

My coworkers mentioned tools that would allow installation of multiple concurrent versions of Internet Explorer, and the ability to switch between them. Searching for them, I stumbled across this blog post. It warned about the reliability of having multiple versions of IE installed at the same time. A quick search found the location of the current set of Virtual PC disk images, that Microsoft have made available.

I was developing in a virtual machine over Remote Desktop, using Visual Studio. The built-in ASP.NET Development Server that comes with Visual Studio, does not allow remote connections. And attempts to install Virtual PC in the virtual machine so that the version of IE within it could access the local web server, which were a dodgy endeavour at best, failed anyway. So I had to install Virtual PC on my desktop machine, and find a way to allow it to access the development web server.

The simplest way would have been to tunnel ports over the Remote Desktop connection, I currently do something similar to this with OpenSSH and VNC for my home computer. But Remote Desktop does not support tunneling. However, another solution is to use Internet Information Services (IIS). IIS comes with Windows, at least since Vista as far as I know, as a feature which can be optionally turned on or off. It can concurrently serve the same web site that the development web server, with a minimal amount of configuration and pointing it at the projects web.config file.