Title: Team Foundation Server the answer to all project management problems
1Team Foundation Server the answer to all project
management problems?
- Richard FennellDirector
- .NET Developer Network Bristol 19th September
2007
2Agenda
- The Need for TFS
- Core Components of TFS
- Add-ins and the API
- The future Orcas and beyond
3Software Projects Need...
- Source Code Control
- Work Item tracking
- Project Management
- Document repositories
- Communications
- Remote Access
4Visual Studio Team SystemApplication Life Cycle
Management (ALM) Solution
5Team System Architecture
6System Requirements
7Versions
- Team Foundation Server 1.0 (early 2006)
- Team Foundation Server 1.0 SP1 (late 2006)
- Team Foundation Server Orcas Beta 1 (Q2 2007)
- Team Foundation Server 2008 Beta 2 (Q3 2007)
- Team Foundation Server 2008
- (late 2007 or early
2008)
8Installation Tips
- Read and follow the MSDN walk-thru
- Do not deviate from the walk-thru
- Not even for a moment
- And keep trying over and over......
- Using a VPC for the front end server can help as
you can commit/roll back as you go.
9Installation Tips
- Make sure there are no domain/group policies you
have forgotten - If the reporting service configuration stage
fails make sure you drop (and delete) the DB
files - Use the log files if you have problems
- Use AD groups for security
10TFS VSS Differences
- Architecture
- TFS client/server, VSS client-side
- Security
- Windows/AD vs. VSS based security
- Reliability
- VSS database integrity can be compromised
- TFS uses SQL Server
- Scalability
- TFS can support up to 2000 user per instance and
data size is limited only by physical media SQL
Server limits ( in the terabytes)
11TFS VSS Differences
- TFS does NOT perform a get latest on checkout
- get latest and check out are 2 separate ops
- get latest is explicit in TFS, controlled by
the user - Provides a consistent snapshot of code
- TFS does NOT add a file until checked in
12Migration from VSS to TFS
- VSSConverter migration tool
- Imports VSS repository into TFS
- Command line interface
- Can migrate most VSS repositories easily
- VSS Shared files are copied
- VSS Pinned items are labeled as PINNED in TFS
13Workspaces
- Workspaces provide Isolated areas
- A single PC can have many workspaces
- Workspaces are a powerful tool with branching
14Branching
- Allows parallel development
- But for anything that you don't want to service
or patch, labelling is sufficient. - For a release that you do want to service or
patch, branching is the way to go. - Using merging, you can move changes between
branches.
15Branching
16 demo
Visual Studio TFS
17TFS Tools Add-ins
18Visual Studio Power Toys
- MSSCCI provider for other IDEs
- Team Foundation Power Toys
- Tfpt.exe command line tools
- Process Template Editor
- Check In Policy Pack
- Test Tools Build Task
19Cool Tool Attrice Team Foundation Sidekicks
20 demo
Attrice Team Foundation Sidekicks
21Cool Tool Visual Studio Web Access Power Tool
TeamPlain
22Cool Tool - eScrum
23 demo
eScrum
24Integration with Project Server
- Project Server 2007 VSTS Connector available on
CodePlex
25 demo
Add-ins
26TFS Customisation
27Customisation
- Process Template Editor Power Toys
- .NET API
- TFS Event Handlers
- Attach to TFSs eventing Service and register for
an event such as CheckInEvent - Write a web service to that does something
when event trigger
28Using the TFS API
- Team Explorer installs all the DLLs are in the
GAC, but doesnt registered them for Visual
Studio - Can write own desktop clients to do anything you
can in Team Explorer or the command line
29Using the TFS Event Handling
- But first a quick diversion into Continuous
Integration.........
30Why do we need continuous integration?
- Replication of development environments can be
hard - The project integration phase is hard
- It is usually attempted only at the end of the
project - It is prone to time overruns and often introduces
bugs
31What is Continuous Integration?
- Based on automated builds
- The solution is built whenever the code is
changed - Should be started as soon as possible
- And repeated as often as possible
- A core part of most Agile processes
- There are a variety of tools......
32CruiseControl
- Originally a Java-based framework for a
continuous build process - Distributed under an open source BSD-style
license and is free for use - Ported to .NET by Thoughtworks and hosted on
SourceForge as ccnet
33CruiseControl
Image Source - http//cruisecontrol.sourceforge.ne
t/overview.html
34 demo
Using CruiseControl
35Visual Studio Team Build
Drop Location
Team Foundation Client
- Create build type
- Start build
- View Reports
Application Tier
Build Machine
Data Tier
- Sources
- Work items
- Team Build data
Team Foundation warehouse
MSBuild
36TFS versus CruiseControl
- TFS provides
- Integration with the rest of the Team Server
- Unified access to all MSBuild tasks
- But at the cost of
- Cost Complexity
- Visual Studio 2005 is not designed for CI out the
box, basically you have to do some API work
37 demo
Using Team Build for CI
38Cool Tool - Team Build Ticker
39Other Cool Tools
- SVNBridge Allows SubVersion client to access
TFS - Conchangos Scrum Project Guidance Pack
- Personify Designs TeamLook Outlook Add-in
- Microsoft Israels Team System Outlook Add-in
- TeamPrise Client Suite TFS access from Macs,
Linux and Eclipse IDE - NB all clients still need a Team Explorer CAL
40So what is missing in TFS 1.0?
- TFS Work Item Hierarchy
- WSS 3.0 Support
- Disconnected working is limited
- I am sure other people have other issues.....
41The Future for TFS
- Release Types
- Servicing Service Packs etc.
- Out of Band releases Power Toys
- Major Releases Visual Studio 2008
42Visual Studio 2008 Administration
- Share Point 2007 support
- Enable use of a separate Share Point farm.
- Support for SQL Named Instances
- Longhorn server support
- Sync Large Groups (30,000 or more)
- Installation on a domain controller
- Non-default ports web sites
- Simplify installation
- Upgrade from TFS 2005
43Visual Studio 2008 Version Control
- Add support for checkin policy overrides to the
warehouse (an oversight from V1). - Annotate Folder Diff
- Destroy
- Get Latest On Checkout
- Workspace improvements
- Performance Scale improvements
- Migration toolkit between TFS and other systems
44Visual Studio 2008 Build
- Support multi-threaded builds with the new
MSBuild. - Continuous Integration
- Improved ability to specify what source, versions
of source, and other build properties. - Improved ability to manage multiple build
machines. - Stop and delete builds from within VS.
- Simplified ability to specify what tests get run
as part of a build. - The ability to store build definitions anywhere
in the version control hierarchy
45 demo
Team Build
46So is TFS the answer to all project management
problems?
47Good VSTS Resources
- Patterns Practices Team Development with TFS
Guide - http//www.codeplex.com/TFSGuide
- How Do I? Video for Visual Studio Team System
- http//msdn2.microsoft.com/en-us/teamsystem/bb5077
49.aspx - Microsoft Visual Studio Team System Virtual Labs
- http//msdn2.microsoft.com/en-us/virtuallabs/aa740
411.aspx - Team System Widgets
- http//teamsystemexperts.com/widgets.aspx
48Good VSTS Blogs
- Brian Harry (Product Unit Manager for Team
Foundation Server ) - http//blogs.msdn.com/bharry
- Rob Caron (Lead Product Manager for Developer
Content Strategy at Microsoft) - http//blogs.msdn.com/robcaron
- Roy Osherove (Blog on TFS, Agile and Testing)
- http//weblogs.asp.net/rosherove
49For Further Information
- My random thoughts But it works on my PC!
- http//blogs.blackmarble.co.uk/blogs/rfennell
- You can also get in touch via
- Email richard_at_blackmarble.co.uk
- WebSite www.blackmarble.co.uk