I used to (and still do) play computer games.  I remember playing this flight simulator game as a kid on Windows 3.x which I totally loved.  I used to think about playing it at school and couldn't wait to get home just so I could sit my arse down and shoot down attacking cat-alien beings.  Anyways, I installed some poker game one day and it apparently copied over some newer .dll's that my beloved flight sim needed and everything broke.  That stunk.  Well, side by side seems to be a solution to this - just allow multiple versions of libraries to exist simultaneously and you'll never hit this “.dll hell” problem.

This is a great idea, but we often forget that there are drawbacks.  First, what if a new FX version has significant perf improvements?  It would suck if your app couldn't take advantage of this especially if there were no changes that would break its functionality.  Second, if you want to run against one and only one version of the FX what happens if someone doesn't have that version and doesn't want to install it?  Here's a scenario - you have this managed app that doesn't ship with the redist on its CD, but your laptop has a newer FX version installed. You're sitting in a hotel room in TimBuk2 and they only happen to have dial-up 'net access that's sporadic at best.  It would smell like old cheese to have to download the redist before running the app.  Wouldn't it be great to just have it work on the newer FX?

I could go on and on about this, but the truth is simple.  Though side-by-side is an important concept and can be a solution in some scenarios, the need for compatibility going forward is great.  I'm glad I can be part of this, it's a huge problem and we're on the forefront of trying to solve it.

Anyways, that's it for today's rant.  I'm going to eat sushi over in Redmond Town Center now as it's my friend's bday and on your bday you get to eat free.  They have lots of tuna there everytime I go and it's always pink and fresh.  Mmmmm... tuna ;)

This posting is provided "AS IS" with no warranties, and confers no rights.