Microsoft Team Foundation Server (TFS) is a great tool, it really is. TFS is highly available, robust, centralized, versioned and easily recoverable. At my company, we use it for everything. Every project, every solution we have is on it. But it has an issue, well its a flaw. You have to be connected to it all the time. If you aren’t you get lots of wonderful errors and alerts that are soon followed by more. Now put it in todays world where programmers aren’t all located in the same building, state or even country. Connecting to the Team Foundation Server now gets a little more complicated and problematic. What we all want is a TFS in every location that is syncing up with a master (peer to server) or each other (peer to peer). Microsoft kind of fixed this, and I mean ‘kind of’.
When Microsoft released TFS they also released Team Foundation Server Proxy (TFSP). TFSP allows you grab source files from the remote server, but not check them in. You still have to check them in directly to the master TFS server farm. That really irritates me. If you can go threw the work of getting the files from the server why not add a system to allow the data to operate bi-directionally. But maybe the next version will give me that
So lets get down to the install.
First thing you need to know is that TFSP has to be install on Server 2003 server. I have tried to install it on XP for a remote location on a budget, but that is a no go.
On your Server 2003 open your TFS media and select Team Foundation Server Proxy option.

After selecting your file locations you have to enter your ‘Service Logon Account’. This is the account that is used as the service account on the master TFS server. If you look at the services on the TFS server you will find it as the logon account for Visual Studio Team Foundation Server Task Scheduler.

Enter the same user and password in the form .

The rest of the install is spent installing .NET 3.5 and the TFSP. After the install is done you need to edit the Proxy.Config. The config is located at %ProgramFiles%\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\VersionControlProxy\proxy.config. When reading any of the posts on the net, you will find most of them for TFSP 2005. When installing it during 2008 beta 2 I ran into a problem of it not being able to connect to the master TFS server. After a lot of testing and some docs from MSDN I found the answer. You can find my problem post here . The important information is that in 2008 the server web path has changed, highlighted below.
<?xml version=”1.0″ encoding=”utf-8″?>
<ProxyConfiguration
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“>
<Servers>
<Server>
<Uri>http://REAL_TFS_SERVER:8080</Uri>
</Server>
</Servers>
<!– Proxy file cache root folder –>
<CacheRoot>C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\VersionControlProxy\Data</CacheRoot>
<CacheLimitPolicy>
<!– Cache limit expressed as percentage of disk space –>
<PercentageBasedPolicy>75</PercentageBasedPolicy>
<!– Cache limit expressed as MB –>
<!– <FixedSizeBasedPolicy></FixedSizeBasedPolicy> –>
</CacheLimitPolicy>
<!– Percentage of cache size that needs to be freed up, on hitting cache limit –>
<CacheDeletionPercent>10</CacheDeletionPercent>
<!– Indicates how often (number of hours) the proxy statistics information should be persisted to a file–>
<StatisticsPersistTime>1</StatisticsPersistTime>
<ReaderChunkSize>1048576</ReaderChunkSize>
<WriterChunkSize>1048576</WriterChunkSize>
</ProxyConfiguration>
Now that the server is install and connecting to the master farm we can configure the client to access the proxy to get files. You will still need to configure your TFS client as normal because remember you are checking in directly to the master. And when you ‘Get Latest’, what you are actually doing in connecting to the master, getting a certificate from the master that describes what you have access to and then you give that certificate to the proxy. Kind of a cheap way to do security, but thats what they did :(. Things can be improved here. On the client in Visual Studio goto Tools > Options > Source Control. Select the Use Proxy Server checkbox, enter your TFSP server name and enter 8081 for the port. Remember the TFS server port by default is 8080 and TFSP is 8081. Once that is done, select a project and do a ‘Get Latest’. You will see that your files are now in the Cache folder you specified during the install, encrypted.

Remember that with TFSP you can use one server to proxy many other TFS servers. If you notice in the cache folder, the first folder is a GUID. That is the server ID. If you add a lot of servers, they will all be different GUIDs in that folder.
Enjoy TFS and lets hope MS fixes some of those short comings.
Chris