My Very First Blog Post - And A Complaint
In the course of my current endeavors as Editor for TheServerSide.NET, I scour literally hundreds of news feeds every morning (or very late night) looking for nuggets of information worthy of a news summary on the site. I've waded through more than a few posts about movie reviews, vacation plans, and pets to get to a useful news post. Now I've decided it's my turn to jump up on the soap box and rest assured that I'll never be blogging about having just seen Sahara this weekend (Penelope Cruz is a Goddess), my upcoming vacation plans (None I'm afraid), and my pet (Pets actually, two labs named Maggie and Libby). The posts will be on anything .NET related as well as architecture and application design in general. If I do throw in some personal observations, it will be categorized as such and you should feel free to ignore it. This is my pact to you, fair reader, and what you can count on me for.
So the first .NET tidbit is actually a complaint. I was chomping at the bit to download and install .NET Beta 2 with all of the Team System bells and whistles. This was no easy feat as the first weekend the bits were available, the server was getting hammered and the download times, even with broadband, were more than 10 hours. But after a few days of watching the magic blue bar, everything was safely ensconsed on my portable hard drive. I started with the Team Foundation Server install which quickly led to the question "Where the $@#%$# is the April 2005 SQL Server CTP?!?". It came out a few days later and so I got the server installed and was ready to install Visual Studio 2005.
I decided to take a chance and install Visual Studio Beta 2 on my production desktop (those of you now screaming "No! Don't do it!", please don't get ahead of me). Previously I'd always relegated the Beta and CTP versions to a virtual machine but it's kind of a pain to load and unload those every time I want to see how something new works. The installation went suprisingly well though and there were no further missing pieces to be downloaded. The sky was blue and .NET 1.1 and 2.0 worked side by side, exactly as promised.
I installed the Beta 2 on my almost new HP Media Center 1090n beast of a desktop system. This thing has 2Gigs of RAM, 250 SATA hard drive, P4 3.6EE processor, etc. etc. What it also has is Media Center 2004 as an operating system, a specialized version of Windows XP. Included in the OS are features for watching and recording TV, playing radio, etc. It's a great system. But shortly after installing .NET 2.0 I noticed that my scheduled recordings of "The Family Guy" were failing. I tried to start the Media Center application but it errored out. None of the media center features worked anymore.
After rooting around a while I found this error in my eventlog.
Event Type clr20r3, P1 ehrec.exe P2 5.1.2600.2180, P3 41107d79, P4 ehcir, P5
6.0.3000.0, P6 41109696, P7 12a, P8 50, P9 system.missingfieldexception, P10
Ehrec.exe is the application in Media Center that records TV, but notice that its a .NET 2.0 CLR error that is being thrown. How then does an application written pre-2004 cause an exception in .NET 2.0 Beta CLR? I asked around on some of the newsgroups, and MVP Alex Feinman pointed out that the Media Center applications call into managed assemblies via COM callable wrappers. .NET 2.0 changed how managed assemblies get loaded into COM which is what was causing all of the Media Center apps to fail.
And so with a heavy heart, I once again have pushed Beta 2 back into a virtual machine where it can do no more harm to my Family Guy viewing efforts. When I get word that this issue is fixed, I may once again venture out into side-by-side .NET installations. In the meantime, could somebody at Microsoft install the Betas and CTPs on ALL of their current operating systems before putting them out?