Hands-Free TFS Installation updated for TFS2008
April 22, 2008 at 8:06 pm | In Team Foundation Server | 2 CommentsWilliam Bartholomew is an Australian TFS colleague who has updated my Hands-Free TFS Installation Guide for use with TFS2008.
It looks like he didn’t have to make too many changes. The most obvious being that the Windows SharePoint Services (WSS 3.0) installation is now automatically installed by the TFS installer. Great work William!
TFS Performance Heat Map Reporting Services Report
April 5, 2008 at 12:33 am | In Team Foundation Server | 5 CommentsPreviously I’ve blogged about how to create a TFS Performance Heat Map using Excel 2007. This is great for a once-off look, but it requires you to update the data source and re-apply the conditional formatting every time a new daily column gets added.
The TFS Performance Heat Map report allows TFS administrators, users and IT Operations staff to monitor the performance of TFS commands and answer questions like “Is CheckIn slower today than yesterday?”
I’ve created a reporting services version of the same data, which allows you to export to PDF and setup a subscription to have it emailed to you daily. I followed the SSW Rules to Better SQL Reporting Services 2005 to give it that professional touch. Thanks to fellow Team System MVP Adam Cogan for the tip!
Here’s an example of what the PDF version looks like:
I’ve made the Visual Studio 2005 solution available which includes two projects. A C# assembly for doing the Heat Map colour calculations and a SQL Reports project. You will need SQL 2005 Business Intelligence Studio installed to be able to open that project. The zip file includes everything necessary to deploy the report manually without these tools though.
Manual Report Deployment
To deploy the report manually, these are the basic steps:
- Extract the contents of the ZIP file to your server
- Setup a new or existing service account (TFSREPORTS) with data-reader access to the TfsActivityLogging database
- Open ‘Performance Heat Map.rdl’ and change the timezone offsets to match your timezone. (see below)
- Open http://your-server/Reports
- Select ‘Upload File’ and choose ‘Performance Heat Map.rdl’
- Select ‘New Data Source’ (see below)
- Select ‘Properties’ of the report
- Select ‘Data Sources’
- Select the data source that you just created
- Apply the changes
- Deploy the Utilities DLL (see below)
- View the report
Changing the Timezone
In the SQL query that I use, I convert all the StartTime dates from their GMT times their local times. I also set all the command times to 12:00 midnight, so that the grouping works correctly.
The report is currently configured for GMT+11 (Australian Eastern Standard Daylight Time).
- Open ‘Performance Heat Map.rdl’ in notepad
- Do a Find/Replace on “DATEADD(hh, 11, StartTime)” and replace +11 with your offset. e.g. “-8″ for PST
In my next revision, I’ll change this to a hidden parameter or something.
Create a new Report Data Source
If you’re not using Visual Studio 2005 to deploy the report, then you will need to manually create an appropriate data source. The settings you’ll need are:
- Connection String: Data Source=SERVER-NAME;Initial Catalog=TfsActivityLogging
This probably shouldn’t be an actual user’s account. You might be better off specifically granting the DOMAIN\TFSREPORTS service account access to the TfsActivityLogging database and using that.
Once you’ve created the data source, you will need to point the report at it.
Deploying the Heat Map calculation assembly
To calculate the different gradients of colours, I’ve used a custom .NET assembly based on the code from Andrew Fryer’s blog post. For Reporting Services to be able to access this assembly, it must be copied to the server.
To use it in the report designer, you need to copy it to:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
To make it available for reports that have been deployed to the report server, you need to copy it to:
C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
I hope you find this useful, please leave a comment if you do. I’ve got some ideas for more ‘operational’ reports to create.
Windows Explorer TFS client with SvnBridge
April 4, 2008 at 11:33 pm | In Team Foundation Server | 1 CommentSvnBridge allows you to use the awesome TortoiseSVN windows explorer subversion client with Team Foundation Server. The bridge mimics the behaviour of a Subversion server and translates the Subversion commands into TFS commands. When I first heard about the SvnBridge project sometime last year, I’ll admit that I privately snubbed it a little because it didn’t feel right and a little hackish.
However, after reading Ayende/Oren (of RhinoMocks fame)’s blog posts on the work he’s been doing on it lately I figured it was time to give it another look.
Scott Hanselman gives a good overview on getting started with the bridge
These changes are not in the 1.0 release from October 2007, but if you download the latest source code and build it yourself (run “Build.cmd Build”) you’ll see some of the great new features:
When you start the SvnBridge.exe you have a new option:
I’m using a copy of the new Visual Studio & Team Foundation Server all-in-one evaluation VPC which has some sample projects in it.
If you’re using TortoiseSVN to checkout the latest code of $/TicTacToe from http://tfsrtm08:8080 then you just specify the repository URL as: http://localhost:8081/tfsrtm08:8080/TicTacToe
You’ll get prompted for authentication if integrated authentication doesn’t work.
The standard TortoiseSVN Checkout dialog:
And now you have TFS Source Control within Windows Explorer. No more read-only files and as soon as you change a file, it’s icon changes.
Associating check-ins with Work Items
My first concern with using the bridge was how to associate check-ins with work items, as this is a vitally important step to link code back to tasks/requirements.
Fortunately it looks like you can add a line to the bottom of your check-in/commit comment “work item: 1234″ or “work items: 1234, 4567″ and it will add the appropriate linkages.
This is what the changeset looks like when viewed in TFS:
But it looks to be broken for the moment, I’ll file a bug for that one
Unfortunately check-in policies are not supported, so you’ll have to make sure that you enforce them as part of your build process.
I encourage you to download it and have a play with it, you may find a perfect situation to use it in. I think this could be the way to bring version control to the non-developer TFS users out there. Remember though, you still need Client Access Licenses (CALs) for all users accessing your TFS server.
TFS Deployer Patches
April 4, 2008 at 9:56 pm | In Team Foundation Server | 2 CommentsRecently I’ve been working with TFS Deployer and I’ve needed it to work in a slightly different way.
Fortunately Mitch set it free and it’s an open source project hosted on Codeplex which allows me to make my own changes and submit the patches for inclusion into the main distribution.
Patch ID #929 - Update to support different TFSBuild.proj path in TFS2008
TFS 2008 allows the Team Build project file (TFSBuild.proj) to be in a path other than $/TeamProject/TeamBuildTypes/<Build Name>/TFSBuild.proj.
This patch connects to the IBuildServer service, and gets the location of TFSBuild.proj from buildDefinition.ConfigurationFolderPath. (See Orcas Object Model documentation)
This patch doesn’t break backwards compatibility with TFS2005, but allows the /Deployment/ folder to be a sub-folder of the location of TFSBuild.proj - wherever it is.
Patch ID #1073 - Update to support multiple email recipients
Sometimes it is necessary to notify multiple people about a deployment & it’s not possible to create a distribution list for doing so.
This is a patch to /Alert/EmailAlerter.cs that enables support for multiple recipient email addresses separated by semi-colons in the NotificationAddress setting in DeploymentMappings.xml.
e.g.
<Mapping xmlns=”"
Computer=”AnotherBuildServer”
OriginalQuality=”Under Investigation”
NewQuality=”Ready for Deployment”
Script=”PrepareForDeployment.cmd”
RunnerType=”BatchFile”
NotificationAddress=”release.manager@domain.com;team.lead@domain.com” />
Enjoy! Hope this helps and if I’m lucky, the maintainers might even accept my patches into the mainline
Update: The patches have been accepted into the mainline by Jason. It turns out they didn’t know there were any patches waiting
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.
