Well the plan for the triple thrill weekend went for a toss and culprit is me and Microsoft. Me for making certain basic assumptions about .NET as a framework and Microsoft for breaking those assumptions :).
Well so here's an interesting fact.
If you have .NET Framework 3.0 installed on your system, it doesn't mean that you have the .NET framework 2.0 SP1 class library as well on your system.
Yeah really i ain't kidding here...
According to the msdn (http://msdn2.microsoft.com/en-us/library/bb822049.aspx) .NET framework 3.0 installer would install 3.0 on top of 2.0 or 2.0 SP1 whatever is available on your system. Now .NET 2.0 SP1 gives some extra classes (I used DateTimeOffset in my code) .
The assumption i made was that if the user has .NET 3.0 on her system of course the class would be available since if a class is present in .NET 2.0 SP1 it won't be absent in a higher version. However it is not true. I can't blame MSFT since they documented it however the fun is that if i install .NET 3.0 SP1 then i have that class again.
So the matrix becomes ...
1) .NET 2.0 Class not available
2) .NET 2.0 SP1 Class is available
3) .NET 3.0 May or may not be available
4) .NET 3.0 SP1 Class is Available
and the 3rd line in the matrix is what spoiled my previous weekend. I got a call from office on a saturday that things are not working and throwing a runtime exception and i had to cancel my all weekend travel plans to figure this out.
Well what can i say except that yeah its a mess up done by me (Since i didn't read the documentation) however i still believe folks at Microsoft messed up.
I think its a happened of deadlines and schedules of the framework release ....
So its a lesson for me that now on i would never believe on classes introduced in SP releases of .NET framework....