The server components of Visual Studio Application Lifecycle Management (ALM) are not automatically integrated into Visual Studio, but it is appropriate to mention a couple of key attributes of TFS that extend it beyond VSS. Similar to VSS, the primary role most developers see for TFS is that of source control. This is the capability to ensure that if multiple people are working on the same project and with the same set of source files, then no two of them can make changes to the same file at the same time.
Actually, that's a bit of an oversimplification. The default mode for TFS allows two people to work on the same file, and then the second person attempting to save changes merges them with the previously saved changes. The point of this is to ensure that developers check files in and out of source control so that they don't overwrite or lose each other's changes. In terms of its features and usability compared with VSS, TFS is much more capable of supporting remote team members. A project that literally takes hours to download remotely from VSS can download in a few minutes from TFS.
However, that covers just the source control features; and as mentioned previously, TFS goes well beyond source control. In particular, TFS approaches project development from the role of the project manager. It doesn't consider a Visual Studio project file to represent the definition of a project. Instead, it recognizes that a project is based on a customer or contract relationship, and may consist of several seemingly unrelated projects in Visual Studio. Thus, when you define a project you create an area where all of the projects and solutions and their associated source files can be stored.
As part of the creation process you select a process template — and third-party templates are available — and create a SharePoint website based on that template. The SharePoint website becomes the central point of collaboration for the project's team. In addition to hosting the documentation associated with your selected software development process, this site acts as a central location for task lists, requirements, Microsoft project files, and other materials related to your project. In essence, TFS leverages SharePoint to add a group collaboration element to your projects.
As important as this is, an even more important capability TFS supports is that of a build lab. TFS provides another optional product called Team Foundation Build, which leverages the Visual Studio build engine to enable you to schedule automated builds. This isn't just a simple scheduling service; the Team Foundation Build engine not only retrieves and compiles your application files, but also sends update notices regarding the status of the build, and can be instructed to automatically leverage some of the ALM tools such as Code Analysis and Unit Testing. The capability to automate your builds and deploy them on a daily basis to a test environment encourages processes that both focus on product quality and mirror industry best practices.
Team Explorer is a Visual Studio add-in on steroids. It includes not only new menu items for Visual Studio, but also a new window similar in concept to the Solution Explorer but that instead provides access to your TFS projects. It also provides a series of windows in Visual Studio, some of which are related to source control, and others related to tasks. TFS is in many ways the single most important tool in the ALM product line.
Team Foundation Server also includes new features for 2010. One of these, Team Project Collections, provides a means of better organizing your TFS server. In the past all of your TFS projects were in one giant collection and any form of hierarchy was entirely voluntary. With TFS 2010 and Team Project Collections it is possible to create divisions within your projects. Thus, you can create different groups for different departments and can group access control, storage, and backup operations as appropriate for each division.
Be aware that there are two versions of TFS 2010. One is designed to provide a rich collaborative environment for a large organization. The other is a simpler version which omits some of the high-end integration with things like Project Server but which enables a small organization to replace any legacy VSS installations. The details of TFS are beyond the scope of this book.
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.