The .NET Platform
Development Tools
COM & COM+
Data Access
Web Development
XML Technologies
Windows Servers
Wireless & Mobile
Security issues
Design & Process
Career Development
Analysis & Comment
Disposable Objects
You are not logged in: login here to access all areas.
Underpinning Visual Studio Team Suite are the services provided by Team Foundation Server. Ian Murphy finds out how they support the features provided by the three client-side Editions. (Copy now revised for Beta 2!)
Author: Ian Murphy
Last updated: May 2005
NOTE: This article is based on Beta 2 of the software, so the features described may differ from those of the final release. Project Management A key part of each Process Template is the supporting documentation, which should be studied with care. The next step is to configure the project by adding users and groups, setting permissions and defining how the project will work. The starting point is the project model hierarchy, at the top level of which is an Organisational Unit (OU). Each OU can contain Components, Feature Areas and more Organisational Units, and to each of these you can assign users, groups and permissions. Creating a New Requirement, one of the four types of Work Item used by the MSF Agile Process Template. Your initial set of Work Items depends on the methodology you have selected. With MSF Agile the defaults are Bug, Quality of Service Requirement, Scenario and Task. When you create an item it is awarded a unique number, and the whole process is form based. You should think carefully before creating new Work Items and consider if each one is a unique component. Software Configuration Management Check-in can be done on an individual or a group basis, and is very straightforward. You simply open the Check In Source Files window and tick those files to be checked in. To see the status of a file, go to the Pending Checkin box and right click on any file. The properties will show four tabbed windows giving you general information, the checked in status of the file, its security settings and whether the code has been branched. Looking forward 
Team Foundation is the repository for Visual Studio 2005 Team System (VSTS). Written as a .NET application and built on top of SQL Server 2005 (formerly known as Yukon), it is designed to provide a full project management and collaboration environment for development teams.
Furthermore, the use of SQL Server 2005 for the repository results in a much more powerful software configuration management (SCM) solution than Visual SourceSafe could provide, and allows VSTS to exploit SQL Server’s existing Reporting and Analysis services. It also allows Microsoft to claim support for very large numbers of users. Indeed the Team Foundation Server used to develop VSTS itself supported some 432 users working in four countries with nearly 200,000 Work Item versions. Nearly 250 users took advantage of the version control facilities.
VSTS uses a three tier model, supporting both single server and multiple server deployment. The database tier is implemented using Windows Server 2003, Internet Information Services (IIS) and SQL Server 2005. The application tier utilises Windows SharePoint Services, rather than the full blown Windows SharePoint Server, and Active Directory Application Mode (ADAM).
On the client tier there are the three Visual Studio Team Editions plus add-ins for Microsoft Excel 2003, Project Professional 2003 and Visual Studio 2005 (VS2005). There is also a standalone Team Explorer client, and of course the project Web site. Third party clients are expected, and indeed SourceGear has already announced Project 'Allerton', a client running under Linux, Solaris and MacOS.
It is important to note that the version of Team Foundation Server that comes with Visual Studio Team Suite, and with the three Editions, has been physically restricted to support a maximum of five users (although it is fully functional in all other aspects). The unrestricted version, which will support any number of users, must be purchased separately and includes the Team Explorer client together with a single client access licence (CAL). Upgrading is achieved by applying what amounts to a patch to the restricted version, so does not involve a new installation or a migration of your existing data.
Each of the VSTS Editions include a CAL but others wishing to access the Foundation Server from other clients, such as Visual Studio 2005 Professional, Microsoft Project or further copies of Team Explorer, will need to purchase a CAL of their own.
You can create new projects from VS2005 or Team Explorer, and indeed Team Explorer is effectively the control centre for project managers who don't need the functionality of a full blown Visual Studio Team Edition. To create a project from VS2005 you open the Portfolio Explorer and connect to the selected Foundation Server. Once you have done this you will be automatically connected to your Foundation Server each time you load VS2005.
You can configure Portfolio Explorer to support multiple Foundation Servers so that an enterprise architect or IT director can monitor multiple teams and projects. For developers working in a software house, or who work in an environment where the project and code are kept separate, this also has its uses.
Projects stored in Foundation Server are referred to as Portfolio Projects. When you create a new Portfolio Project you are asked to select a Microsoft Framework (MSF) template. These can be added to over time, but the Beta 2 comes with just the MSF Agile Process Template.
Earlier releases also supported MSF Formal, compliant with CMMI (Capability Maturity Model Integration) level 3, and we understand that the forthcoming July Community Technology Preview (CTP) will include Process Templates for CMMI level 3 (there is even talk of support for level 4). We understand that the Software Engineering Institute (SEI) has agreed to work with Microsoft and sign off CMMI templates. This is a huge boost for Microsoft and any customers who need CMMI compliance. Microsoft expects to announce more templates and showcase partners shipping their own templates during the TechEd conference season.
Once you have selected the process you have the option of setting up the Project Portal in SharePoint. You also have the option of creating a version control folder and a version control branch, or leaving version control until later. When you have finished the Portfolio Project wizard generates the initial Web site and takes you to the homepage where you can begin to tune and manage your project.
The first place to go is the Roles tab. This provides you with a list of the six key roles in a project, and a definition of each. You can visit each in turn where you will be presented with a set of steps, some Work Items and a collection of examples and templates. This may look restrictive, but you can extend and add to this list over time. The index shows a list of Work Streams by Role, which are simply hyperlinks to documents. You should spend some time reading these.
Projects go through iterations known as ProjectLifecycles. A ProjectLifecycle is made up of several LifeCycleItems and here the Agile MSF suggests three, namely Prototype, Beta and Release. You may want to insert more depending on the complexity of your project and your methodology, for example having a Testing Release and a Production Release. LifeCycleItems can be nested within other LifeCycleItems to create a comprehensive process.
Adding User and Groups to a project is extremely simple. Each project has its own set of groups under the headings of Contributor, Project Administrator and Reader. There are also the global groups named Namespace Administrators, TFS Everyone, and Service Accounts. You add your existing users and groups to these new groups from Active Directory in the normal way.
Once the outline and lifecycle of the project has been created, you can move on to define Work Items. These are units of work that can be allocated to members of your team and tracked through states such as Active, Pending, Resolved and Closed. Foundation Server stores Work Items in the project database, created with the Portfolio Project. 
You track how your project is proceeding by creating queries. As SQL Server 2005 underpins Foundation Server these are inevitably SQL-based queries, and Microsoft has provided a simple query editor to help here. Queries are not only used to build reports but also to export data.
These queries are accessed from Excel through a new toolbar that appears when the add-in is installed. This includes a Sync button which means that users can work with Work Items while disconnected from Foundation Server. Once you have updated the spreadsheet, you connect back to Foundation Server and click the Sync button.
This provides an opportunity for people to work offline through either Excel or Project. While this has its attractions, particular when sitting on a plane traveling to and from customer sites, be warned. Not all of the fields are exportable and there seems to be no accurate list in Beta 2 as to which can or cannot be exported.
Any ancillary documents supporting the project should be stored directly in the SharePoint site for the project. This means saving to a URL address, and depending on how complex your site structure is, you may want to create an alias.
Project is similarly integrated through a new toolbar. Click on the Import button, select which Foundation Server you require, and then connect to the Portfolio Project. Once there you can run a query or simply select the Work Items you want.
Once within Project you can chart the state of all Work Items and validate the schedules for a project. As with Excel you can add, update and manage Work Items, and sync them with the Foundation Server. However Project also allows you to assign iterations to tasks.
With the ability to work offline, the chances of conflicts occurring are increased. There is now a Work Item Publishing Errors dialog box to help resolve such conflicts, and until you correct the errors you cannot publish the changes.
Microsoft Project allows you to create multiple read-only views on your project. This means you can build specific views for different members or teams, and as they are read-only you do not have to worry about resolving multiple updates. However in Beta 2, such views are not maintained by Foundation Server which means you have to manage them yourself. It is not yet known whether the shipping code will support linking for automatic management.
Although Microsoft has talked a lot about requirements process, there appears to be no easy mechanism for end users to file requirements to a project. You wouldn’t want to distribute the tasks lists to end users, but you might want to send out a form for them to complete. It would be extremely good if Microsoft was to implement a built-in link to an email server and a form that would allow users to post requests that could later be turned into formal requirements.
Over the last decade, the use of Software Configuration Management (SCM) for managing source code has become almost commonplace. The complexity of modern software engineering, time to market pressures and the demand for bug-free and secure code have all driven adoption of SCM into the mainstream.
To encourage SCM adoption, vendors have had to ensure that their products plug seamlessly into Integrated Development Environments (IDE) such as Visual Studio. Unlike other development tools, where you can import and export files and swap tool with relative ease, SCM is a single point solution. This is because vendors have chosen to differentiate themselves by features, security and behaviour. Despite industry efforts to create common repositories, SCM vendors are very much tied to their own data structures. Microsoft hopes to persuade vendors to abandon their own repositories and sit on SQL Server 2005 instead.
For many, this will be a complex and painful decision. When they look at their existing products and compare them to Microsoft’s current SCM offering, namely Visual SourceSafe, few see any reason to move. As a result Microsoft will have to work very hard to convince people that it has finally produced an enterprise-ready tool.
For the SCM vendors, it is still not clear what incentives Microsoft is offering to persuade them to make the move. The SDK has a number of schema layouts describing how data is to be stored, but this would mean vendors abandoning their current data structures which involves rather more than simply writing a new user interface to work with the Foundation Server repository. Few end-user organisations will want to do this themselves, so Microsoft is dependent on persuading other SCM vendors to write porting utilities.
For developer teams, the problems revolves around the complexity of moving to a new SCM solution. Few teams do so lightly and once you have trained the developers and configured the underlying repository, a lot of time, effort and money has been invested. Starting again, and convincing developers that Foundation Server will work as well as what they already have, won’t be easy.
One solution is only use Foundation Server for new projects. That doesn’t overcome the collaboration hurdle but it does provide a working migration story. Internally, Hallauer claims that Microsoft was able to move all of its code to Foundation Server in just two weeks. She further states that Foundation Server is managing a million updates per hour with no loss of code. We understand that Microsoft is developing a converter for Rational ClearCase, and the Beta 2 code does include walkthrough projects and information on porting from Visual SourceSafe.
So let’s take a quick look at what’s in Beta 2. You begin by pointing VS2005 to the Source Control program of your choice (which could be where Microsoft brings other SCM vendors into the solution). By default, VS2005 points at Visual SourceSafe but you can change this to Team Foundation Server. Like most SCM products, this is a two-tier solution with a managed server area and a local workspace.
When you start a new Project, you will need to decide if it is to be added to the SCM. This is simply a check-box on the new Project screen. At the moment there doesn’t seem to be a policy that will allow you to make this mandatory for all users. In a controlled environment, not being added to SCM should be the exception and not the default, so a policy setting here that would require it to be unchecked would be nice.
You can set Office products up to do a save to a temporary directory, so it would be useful to know that the local workspace can be configured to have a temporary, timed save as well as when you physically save. I doubt that there is a developer who hasn’t lost work because of a power glitch or a machine hang.
As soon as you add new items to a project, you are given a visual notification showing that there are items to check-in. In the current build this changes the display from a blue lock to a red tick.
There is a source code explorer where you can check in all files in one go. Alternatively, you can undo any pending changes and check out files for edit. This is where you merge and branch code, and view the history of a file. Sadly, this is tucked away in the menu structure when it should be an icon on the toolbar by default.
You can check in supplementary material at the same time as you check in files, and you can add comments to anything you check in to inform others of the state of the code. If you are interrupted before completing everything, for example, you can write yourself a prompt for later. I know a lot of organisations where component experts will partly code something and then hand it off to others to complete. The use of comments allows more control over this process.
As with other products in the market, this solution does the basics well. However there are some special features shared by few other programs. Particularly important is the ability to set conditions for check-in. There are other vendors that already do this, but Microsoft has extended this facility so that you can not only create simple policies but even require code to have passed specific tests before it can be checked in. There are several blog entries from Microsoft developers detailing how to do this. I would urge you to experiment and see how tight you can make your code control.
One element that is missing is the ability to create forms that can be distributed to users. Microsoft already has a technology that allows you to send an error report if your application fails. What they haven’t done in the current beta is incorporate that technology into Team Foundation Server. That is a shame and it’s to be hoped that it will be there when the product ships. To have error reporting that can automatically be emailed to a default account and then imported through a simple macro would make this a very attractive tool, and although we were promised it for Beta 2 it still doesn’t seem to be there.
Microsoft has undoubtedly spent a considerable amount of time cleaning up VSTF. The code is cleaner, the features generally work and it is becoming a compelling solution. There is still work to be done with both Processes and SCM, but things are definitely looking up for Team Foundation Server, particularly since Microsoft took the decision to include a five-user version with the Visual Studio Team Editions.
Click here for our Privacy Statement. Copyright © Matt Publishing. All rights reserved. No part of this site may be reproduced without the prior consent of the copyright holder.
Introducing the Visual Studio Team System Visual Studio Team Edition for Software Architects Visual Studio Team Edition for Software Developers