Note: Hey, this is just my perspective on CTPs. It should not be construed as an official Microsoft statement on CTPs. I don’t think I’ve ever seen one.
What is a CTP?
CTP (Community Technology Preview) release are supposed to be a ‘point-in-time’ release of a product. That is to say, we draw the line at some magic point (usually following a major coding milestone) and branch our sources. The CTP branch then undergoes some rudimentary testing to ensure it can install and some determined amount of functionality exists.
CTPs are provided to let you, our customers, obtain more frequent snapshots of the product without having to wait months for the a Beta release. It should be noted that Team System is not yet a Beta product and won’t be until early next year. Everything you’ve seen up until now would normally have been reserved for a select few early adopters and partners. By releasing CTPs, we’ve received considerably more feedback from a broader group of people, earlier in the development life cycle. This is goodness for all concerned.
Installing a CTP
As many discovered with the September CTP release of Visual Studio 2005 Team System (a.k.a. Visual Studio 2005 Beta 1 Refresh with Visual Studio 2005 Team System – the ‘Refresh’ part was a bit of a misnomer), installation may only work in a particular computer environment and under the right conditions. You’ll have the most success with ‘clean’ computers, which generally means a fresh install of the OS and not much else. Reusing OS installs that have been tainted with previous CTPs or Betas is not a hot idea.
Please, please, please read the Team Foundation Installation Guide before you install Team Foundation Server.
That could’ve saved some people hours of frustration with the last CTP. I’m not saying it’s perfect, or that it was obvious to do so. Just like the product, it is a work in progress. I invite you to send me feedback on its contents (contact me). This is one of the few pieces of the product where I have direct influence. Setup is constantly improving and eventually you’ll be able to install everything on one computer using just a workgroup. For now, you’ll still need a Windows Server 2003 Active Directory domain.
Using a CTP
Not everything works in a CTP release. Some stuff is flat-out broken, while other things are of marginal use. We try to identify those areas in the readme or known issues documents that accompany the release. CTP builds are not for everyone. If you’d rather not to be on the bleeding edge, you should wait for a Beta or the final release.
Because our goal is to offer these builds more frequently than Betas, they don’t receive the same degree of attention as a Beta and they are not held to the same quality bar. Typically, Beta and released products go through a very rigorous testing and quality assurance process before they are unleashed on the world. CTP builds do not go through this same process.
Removing a CTP
It is very likely that removing (uninstalling) a CTP build will introduce significant instability to your system and may even require you to take the computer down to the ‘bare metal’, which means reformatting your hard drive and reinstalling the operating system. Unless you enjoy practicing your disaster recovery procedures (you do have a backup, right?), do not install CTP builds on computers you rely upon for other purposes.
Getting Help for a CTP
There are a number of resources available for the Team System CTPs:
- Readme & Known Issues (latest will usually be available online)
- Documentation (install the MSDN Library; MSDN Online is only updated for Betas and RTM)
- Installation Guide (starting with the December CTP this is a separate file, dv_VSETInstall.chm, on the Team Foundation Server DVD/CD/ISO/etc.; for the September CTP, it was a collection of HTML files)
- Ask Burton
- Team System Dev Center (if any links above eventually break)
Not all CTPs are created equal. CTPs are released for different editions of Visual Studio (e.g., Team System, Express Editions and Standard). A CTP release could very easily contain Visual Studio bits that are older than an earlier release by another team, or have functionality that once worked but is now broken.