Didja know? Web projects do time traveling...

time to read 2 min | 400 words

It's a little known fact that Microsoft managed to add time traveling capabilities to web projects.

In order to activate this capability, all you need to do is to discover a bug in your application. Suppose it's an instantly recognizable, and instantly fixable. Now, in order for this to work, the bug must be in a library that the web project references.

Fix the bug, and run the application again. It works! :-) Dance a little jig, and then keep on working. Five seconds later, you'll discover the same bug. After much head scratching, you'll realize that somehow the web project pulled the old version out of the past, and used that, reintroducing the bug.

I'm really in awe to the Microsoft Engineers that are responsible for this feature. I especially like the way they made it bullet proof. I tried to hack around this great feature by cleaning the solution, rebuilding, physically deleting the files from the hard disk, cutting the head of a chicken and praying to the rain gods. But this is a solid feature, no matter how much I tried to break it, it keep serving me the past version of my library.

Oh, I got it for a few seconds, here and there, but the great time traveling feature of web project always managed to bring me back to my initial state. Then I tried the Weapon Of Doom, I restarted Visual Studio, but they were good, those anonymous engineers in Microsoft. They thought of that as well and made sure that the time traveling effects would persist across sessions.

I got to hand it to them, this is truly innovative feature. I mean, other IDEs has time traveling machines as well, we call them source controls. I guess that the Team System engineers were so fired up about their product that they just couldn't resist putting it into web projects as well. Just to give us a taste of what we can expect if we'll use Team System.

This is the only reasonable explenation, isn't it? After all, updating a library that a web project is using is going to be a common operation, it's not as if the web project does this maliciously, isn't it? Please tell me it's not so...