ey there! This month, I’m bringing Ambrose Little on board and we’re starting a new column entitled “angryCoder vs. dotNetTemplar.” In each issue of CoDe Magazine, we’re going to debate a hot .NET topic. Sometimes we’ll agree. Sometimes … well … let’s just say we won’t and leave it at that. Just think of us as the Ebert and Roeper of .NET. That said, let’s dive right into this month’s topic, which is whether or not to take advantage of the Visual Studio 2005 Beta 2 Go-Live license.
Yeah! Awesome! Go for it! This stuff is way cool! At least that’s how I feel about it. But for the heck of it, I ran it by Mrs. dotNetTemplar to get a non-dev perspective. After explaining the Go-Live license, she asked me “so, will I be able to play Zork Nemesis?” You see, Zork won’t run on Windows XP, so she keeps asking me to install Windows 98 (yuck!) again.
This illustrates the key consideration-professional developers need to decide based on how it will impact their clients, not on how cool they think a new technology is. I would say that unless you are confident that building an application to run on this license offers tangible benefits that your clients actually care about, you should not do it. Most companies cannot justify diving headlong into early adoption without having objective benefits that outweigh the risks of committing to a project that will run on unsupported beta software.
My answer is a resounding “maybe.” While it is easy to get over-excited about deploying the latest and greatest, you really need to read the fine print first. I did. There is some scary verbiage in there. For starters, you’ll need to have all of your external end users sign a Go-Live license and obtain the .NET Framework directly from Microsoft. That will make client installations a challenge. You’ll have to place a notification in your application that states that you’re using Beta technology (as if them signing the Go-Live license wasn’t enough).
You won’t get any “official” support from Microsoft under the terms of the Go-Live license, either. There’s plenty of community support, but that won’t impress your executives or shareholders much. Ironically, you are still bound to install any updates to the Framework that Microsoft releases during the Go-Live phase, which can add some extra deployment headaches.
Microsoft makes no guarantees about the performance of the .NET Framework v2.0, although my feeling is that it is more than adequate for production or they wouldn’t allow the Go-Live license in the first place. What you will need to do is contend with a pretty lengthy list of types and members that will be removed by RTM. If you don’t pay close attention to this list, then you may be stuck doing a lot of re-work to your code. And don’t think that you can take your own sweet time to upgrade to the RTM code base. You only have 30 days from the date of release, not to exceed May 1st. 2006. There is even a clause in there that allows Microsoft to terminate the Go-Live license at any time without cause and with no notice. I don’t suspect that will happen, but the threat is there, nonetheless. Plan to move quickly when the time comes.
In my opinion, the decision really comes down to what platform you are deploying to. If you are building an ASP.NET Web application, then the risks are mitigated by the fact that you most likely control the server that you are deploying to. That means that once v2.0 goes RTM, you can clean up your own mess and move on. I don’t think that there is a compelling reason to deploy a Smart Client application on v2.0 until RTM. You would be releasing code into the wild that you cannot control or take back. There is also no guarantee that the Beta 2 runtime will uninstall without incident, either. Imagine asking people inside or outside of your company to re-image their system at RTM. Not pretty.
I think that both the dotNetTemplar and I agree that you should proceed with extreme caution. Until next time, if you have a suggestion for a topic you’d like to see us debate, shoot an e-mail over to [email protected]. See you in the trenches!