TFS Service Preview and Agile14 March 2012
Microsoft Team Foundation Server (TFS) is now being offered as a cloud-based service. TFS provides configuration management, source code control, lifecycle process management, etc., and is currently available as a free preview service. I decided to try it out, along with the Agile development lifecycle process template.
TFS is ubiquitous and pretty much .NET developer will have used it at some point or other. For many teams, it is at the heart of their day-to-day development processes and activities. It provides source control, manages your team's work items, helps the project manager keep abreast of vital KPI's (Key Performance Indicators), manages the build process, etc. In short, it is indispensible. However, setting up and configuring TFS is no trivial task, so it was an obvious choice for Microsoft to offer as a cloud-based service.
The service is currently only available as a free 'preview', with no details yet as to what the likely charges will be when the service goes live. To be able to use the service you have to apply for an invitation code. Too do so, simply goto http://tfspreview.com/, click Create Account and wait for the TFS preview team to get back to you with your code. In my case, this took about 10 days.
Once you have your invitation code, you will be sent link to https://tfspreview.com/_account/Signup, where you can enter a team, company, individual or some other unique name that will form part of your final TFS url. At that point, you'll have access to your TFS home page, in my case https://rarcher.tfspreview.com/:
The first thing to do is make sure you have all the requied software installed. Essentially this means either Visual Studio 11 Beta, or Visual Studio 2010, plus SP1, plus a special 'hotfix' (KB2581206) that allows Visual Studio 2010 to authenticate correctly with the TFS preview (I missed that hotfix and couldn't connect until I had installed it). The Download software link provides details of everything required.
Once that's done, go back to the TFS home page and click Create a team project:
Note that the following lifecycle templates are available (I chose Scrum 2.0 - Preview 3):
You can now click on the newly created project to see its control panel page:
At this point I chose to add my existing source code to TFS, using Visual Studio 2010. First, in Visual Studio select Team | Connect to Team Foundation Server. Click Servers, then Add. Enter the URL for your TFS project (e.g. rarcher.tfspreview.com in my case) and click OK.
You should now see Visual Studio connect to TFS and prompt you to enter your credentials (e.g. a LiveID). You'll them be presented with a dialog showing your project collections and team projects - click the Select All option and Connect.
You're now ready to add your source solution to TFS. With the solution already opened, select File | Source Control | Add Solution to Source Control:
Note: I initially had some trouble adding my project to TFS as it had previously been under TFS control at CodePlex.com. I had difficulty removing the mappings between the project and CodePlex. Eventually I had to re-connect to CodePlex's TFS, re-bind the project to CodePlex, and then remove the mapping via the File | Source Control | Workspaces command. At that point I was able to add the project to the TFS Preview server.
The Add Solution to Source Control dialog is displayed (here you can see I'm adding a second project, ACPLogAnalyzer, to TFS):
Simply select the project created earlier via the TFS web site and click OK. The project's files will be recursively added to TFS and shown as added in Solution Explorer:
I now checked all the files into to TFS, using the Pending Changes window (View | Other Windows | Pending Changes). Simply select all the files, provide an optional Comment and then click Check In:
The project's files will be recursively checked-in to TFS and shown as checked in (padlock icon) in Solution Explorer:
The above can be repeated as many times as is required to add more projects to TFS.
In part two of this article, I'll review working with the scrum template, work items, the project backlog, etc.