You know by now that Visual Studio 2005 Beta 2 is out; it would have been hard to miss all the hoopla. But in amongst the various component announcements and support page launches, you might have missed one other significant piece of news. This beta also marks the release of the "Go-Live" license for Visual Studio 2005 Beta 2, .NET Framework 2.0 Beta 2, and SQL Server 2005 Express Edition April CTP. In simple terms, that means that you are now allowed to build applications with Visual Studio 2005, put them into internal production (as opposed to testing) use, and even distribute them to your own customers (though you have to make them download the .NET Framework 2.0 on their own rather than redistributing it).
There are caveats and limits, of course. Reading the license, you will discover it's all done at your own discretion and risk, and that you have to include a visible notice in your software telling users that "the Application relies on pre-release, time sensitive, unsupported software that may not operate correctly." Microsoft, naturally, won't support anything, and of course you indemnify them against everything under the sun. If beta software reduces your data center to a smoking heap of rubble, that's your problem. Then again, that's your problem even if you're using a released version of a Microsoft product.
Developers, of course, always want to run off and play with the newest shiny toys, and there certainly are a lot of nice new things for Visual Basic developers lurking in Visual Studio 2005. With improvements like edit and continue, generics, the 'using' keyword, partial classes, debugger DataTips, the My namespace, and so on, most VB .NET developers are more than ready to move on to the new version and drop VS .NET 2003. But remember, "beta" starts with B and B stands for "broken". Before you go charging forward to sign the Go-Live license and demonstrate your cutting-edge technical prowess to the rest of the universe, you need to think about whether it really makes sense for you to be among the first wave to deploy a .NET 2.0 application. Here's my own list of good reasons for taking advantage of the Go-Live license:
- You absolutely need some feature that's new in 2.0 for your application to function. If you're missing out on sales because you can't deploy without 2.0, well, go ahead and sign the license and go for it. Just be prepared for high support costs if you have to deal with Microsoft's bugs as well as your own.
- You have an existing application that you're planning to upgrade when .NET 2.0 is released, and your customers want to beta test your new version. If your customers are smart enough to understand the distinction between production software and beta software, you can use this opportunity to launch your own beta test program.
- You're developing an internal application, and have a large enough team that you can maintain existing .NET 1.1 code in parallel with an experimental .NET 2.0 version. If you keep data formats stable so you can move backwards in case of disaster, then it's relatively safe to explore the new version in production.
- You want the prestige of being first-to-market with a .NET 2.0 solution in your particular product niche. I'm putting this bullet point last because I think it's a very dangerous strategy. You might be first-to-market with a great .NET 2.0 solution. You might also be the first one with an application that blows up due to bugs in the current .NET beta release. If this is your only reason for wanting to "Go Live," I'd recommend sticking with internal beta testing for now.
You might think of another reason that I've missed, but please do have a good reason for signing the Go-Live license. Software development is not the equivalent of climbing mountains; "because it's there" is decidedly not a good reason for deploying beta versions of software. Microsoft has given us all an opportunity to move forward with .NET 2.0 months in advance of its final release, but that doesn't mean we need to take advantage of that opportunity without careful thought and evaluation. It's to Microsoft's advantage to have .NET 2.0 tested widely in real-world situations with plenty of users on a variety of hardware. But it's to your advantage to make sure your business runs smoothly and that your customers aren't alienated by crashing applications. Don't get the two sets of advantages mixed up.
Mike Gunderloy is an independent developer and author working in eastern Washington state. His recent books include Painless Project Management with FogBugz (Apress) and Coder to Developer (Sybex). You can read more of Mike's work at his Larkware Web site, or contact him at MikeG1@larkfarm.com.