Focus? Or a brief decompilation of our brains 


A simple concept, in theory


This post is not directly programming-related. It’s just a plethora of ticks and tacks over my own thought processes.

When I first started this development blog, I wrote the following in the “About” section: “I’m going to focus on the thorns in our side; Or how to work around all pesky limitations, all pain in the neck around different kinds of libraries and technologies that pulverize our precious time”. I originally planned to post at least once a week. And despite having enough content, and enough time to write, I was unable to fulfill this weak, fragile requirement formulated by my wanting mind. Click here to read more.

Advertisements

Your identity just got OWNED, or “How to figure out OwnerId, CommitterId, and why isn’t the committer always the owner”


The identity trinity: tbl_Changeset, tbl_VCIdentityMap and Constants


First of all, please note that this post applies to TFS2013. Earlier or later versions may have a different structure, leaving this deprecated or invalid for you.

Now, I’m posting this just out of awareness, because I had to look around a lot before I figured out how some of the tables of the project collection database are related. Usually we’d see these kinds of relationships denoted by foreign keys and whatnot, and I don’t exactly know the reason this isn’t the case here. Must’ve a motive.

Not many people will find use in this, but it may be very important if you’re customizing TFS or migrating it. Or just for any shadowy reason you might have. Click here to read more.

Same yet different. Getting information from a TFS Request (WebAccess JSON)

This is the third part of a series on how to implement a validation plugin using ITeamFoundationRequestFilter.

You can go to the first part by clicking the link below:

https://conradoclarkdeveloper.com/2015/03/02/iteamfoundationrequestfilter-part1-tfs

In this post I’ll explain how to handle work item create/update requests from WebAccess.


What’s in the request again ?


Last time we figured out what Visual Studio requests to TFS in order to create/update Work Items. With this information, we’ve created a simple validator which prevents a specific user from creating work items. It may work wonders when the request is being sent to the ClientService.asmx service as VS does, but unfortunately this kind of operation is not centralized, so if you try to create the work item through WebAccess, your validation just won’t work.

Keeping that in mind, we’re going to inspect WebAccess to figure out how does it creates/updates work items. It’s actually easier than before because we can see the request in the browser itself: Click here to read more.

Different yet the same. Getting information from a TFS Request (Soap XML)

This is the second part of a series on how to implement a validation plugin using ITeamFoundationRequestFilter.

You can go to the first part by clicking the link below:

https://conradoclarkdeveloper.com/2015/03/02/iteamfoundationrequestfilter-part1-tfs

In this post I’ll explain how to intercept a work item creation request and prevent the operation from executing.


What’s in the request ?


After creating a simple plugin using an ITeamFoundationRequestFilter implementation, you are now able to intercept requests to TFS.

I recommend using a software such as Fiddler to capture requests and observe what they’re like. In our case, we’re going to investigate what goes on when we create a WorkItem on Visual Studio and on Web Access. I’ll also be using Fiddler since it’s well known and easy to use. Click here to read more.

Like water through a sieve. Word on how to implement ITeamFoundationRequestFilter


How this came up – The problem with Work Item Process Editor 


If you’ve worked a fair time with TFS you know it surely has its pitfalls and issues. One thing that upset me a lot before is validating work items. You never know what kinds of requirements people can come up with, and with such a limited interface there isn’t much you can do. Click here to read more.