The more I use IIS 7 on my local development machine, the more I like it (compared to previous versions of IIS). I have to say that Microsoft really did a good job on fixing some of the problems that made IIS a hindrance to local web development. The two most notable features that I've discovered in the last few weeks are the ability for it to have multiple local websites (unlimited websites, actually), and built in local self-signed SSL certificates.
In versions of Windows prior to Vista, the built in IIS (version 6 and earlier) only allowed you to have 1 website locally. So, you would generally just have to have a bunch of folders in that website that contained the actual sites you were working on. (http://localhost/website1, http://localhost/website2, etc...). But that went away when IIS 7 came out. (woo-hoo!) Now you can truly mimic a production environment by having multiple websites in IIS. I generally just create a dummy url (website1.loc, website2.loc, etc...) and specify that as my host header for my site in IIS, then stick an entry for it in my hosts file and I'm done. That way I can replicate the production website's url exectly (except for a .loc instead of a .com).
Today I found another little gem in IIS 7 that really helps out with local development. IIS 7 now has built-in support for creating self signed SSL certificates. Scott Guthrie, who has written a tutorial to show just how quick and simple setting this up actually is, sums it up best in this quote:
The good news is that IIS 7.0 makes it radically easier to configure and enable SSL. IIS 7.0 also now has built-in support for creating "Self Signed Certificates" that enable you to easily create test/personal certificates that you can use to quickly SSL enable a site for development or test purposes.
Using IIS 7.0 you can SSL enable an existing web site in under 30 seconds."
Scott's not too far off on his estimate, it took me about 30 seconds to have SSL up and running locally for one of my development sites. This is a big deal for me as we do a lot of stuff that needs to be tested on SSL, and there's never been an easy way to set that up locally. I had actually anticipated spending the rest of this afternoon getting SSL up and running locally in IIS. Now I guess I'll just have to write code instead!