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
Team Size Configuration Memory CPU
100 Single Server 1GB 1P 3.4Ghz
200 Single Server 2GB 1P 3.4Ghz
400 Single Server 2GB 1P 3.4Ghz
800 Dual Server 1GB AT 4GB DT 1P 2.8Ghz AT 2P 2.7Ghz DT
2000 Dual Server 4GB AT 16GB DT 2P 2.8Ghz AT 4P 2.7Ghz DT
3500 Dual Server 4GB AT 32GB DT 2P 2.8Ghz AT 8P 2.8Ghz
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