Hands on with Microsoft Team System
Is integration sometimes tighter than you’d like?
Historically, Microsoft has shown little interest in application lifecycle tools. The company was content to make Visual Studio extensible, and have third-parties fill the gap between a single-developer IDE and a manageable software development process.
The one concession to team development was Visual SourceSafe, a bundled source code management system which integrates nicely with Visual Studio but was never engineered to work properly across a wide area network, and which earned a reputation for occasionally corrupting its database.
Then in 2003 IBM acquired Rational Software Corp, which at the time was a key Microsoft partner, offering Rational Rose modelling for Visual Studio as well as a full suite of lifecycle tools underpinned by the RUP (Rational Unified Process). For Microsoft it seems to have been a wake-up call. If Visual Studio was to compete against IBM’s WebSphere tools in enterprise development, the company had to improve its application lifecycle offering.
Three years on, the outcome is Visual Studio Team System. It is a weighty suite of tools, covering the software lifecycle from initial design through to final build. Features include system and application design; source configuration management; code analysis and profiling; web and load testing; unit testing; bug tracking; and build management. On top of all this, Team System creates project portal sites, enabling team members to collaborate and to monitor progress.
It is a lot to take in. Perhaps the best place to start is with the architecture of the suite itself. The heart of it is called Team Foundation and has three tiers:
- The data tier runs on SQL Server 2005 and stores application data including source code, test results, bug reports and other work items. This can be on the same machine as the application tier, or on a separate server.
- The application tier is a set of web-based applications and services running on ASP.NET and Windows Sharepoint Services.
- The client tier is primarily a module within Visual Studio 2005 called Team Explorer. In addition some Office applications can access the application tier directly.
Most of the other elements in Team System are extensions to Visual Studio. Some of these make sense as individual tools with or without Team Foundation, but in most cases there is tight integration.