Share →

ConfigurationRequired I have always been annoyed with the mechanics of the Team Foundation Server check-in policies. I understand the limitations, but having to have a specific policy installed on every developers computer before you can use it is slightly ridicules and practically unmanageable. Why is there not a way to have a single installation that allows you to select any policy you want and have it execute in the desired manor on every client, including web clients?

I think it is. With the advent of the Dynamic Language Runtime (DLR) it should be possible to have a single (well one for each version of Visual Studio) policy that allows you to pick a DLR policy and have it run. One better would be to have a site that encapsulated those policies and you could just pick the one you want from a list. This could then open up a bunch of other features, like saved policy sets or composite policies for specific methodologies, or many others. But keeping to the KISS (Keep It Simple Stupid) principal all I need are two or three things, a Web Service based data store, a Policy and an editor.

I am currently working on the Web Services and how to pass and store the data I will need, but it looks promising and my initial investigations certainly worked quite well even though I am hampered by my lack of IronPython or IronRuby experience.

ar123456585516148Once I have the web services up to scratch (WCF by the way) I will try my hand at the Editor (WPF) and then move onto the Web interface (ASP.NET MVC) all in Visual Studio 2010.  A mammoth task, but one I think I can manage… famous last words…

I might need to learn a little Ruby :)

 

 

Tagged with:  
  • David Solivan

    I lead an architecture team where I work and we’re struggling with distribution of check-in policies here. I’m very interested to see what you come up with. Good luck!

  • Tim

    Can you specify more why DLR can solve your problem?

  • Martin Hinshelwood

    Hi Tim,

    All clients get a “single” policy called the “DynamicPolicy” installed.

    A policy creator would create a policy definition that includes code in a DLR language of choice and submit it to a repository.

    The policy configurer would add the installed “Dynamic Policy” to their project and select then configure and instance of the desired policy from the repository policy definition.

    When the policy is evaluated by the policy user the “DynamicPolicy” evaluates the code property of the policy against the desired language passing in the Microsoft.TeamFoundation.VersionControl.Client.IPendingCheckin object and returning an array of Microsoft.TeamFoundation.VersionControl.Client.PolicyFailure

    Easy…