Extending TFS and Visual Studio Online eBook–Update 1

eBooks, TFS, TFS API, Visual Studio Online
Back in May, I wrote about the initial release of Extending TFS and Visual Studio Online, an eBook that Mike Douglas and I have been working on. To reiterate, the primary focus of this book will be to provide scenario-based examples on how to utilize the new REST-based APIs and Service Hooks. Based on our everyday experiences with TFS and Visual Studio Online, along with feedback from our readers, we plan to provide a book that will be simply indispensible for anyone wishing to extend TFS or Visual Studio Online using the new API. Although our original plan was to publish updates every few weeks, the typical summer schedule has gotten in our way a bit (e.g. vacations, activities, nice weather, etc.) so it’s taken a little longer than originally…
Read More

Extending TFS and Visual Studio Online eBook

eBooks, TFS, TFS API, Visual Studio Online
Last week, at TechEd North America, Microsoft announced the availability of a new API being provided by Visual Studio Online. This API is based on REST, OAuth, JSON, and Service Hooks. While this new API is still in preview mode there is still a lot of functionality that can be taken advantage of by your custom applications. While a great deal of documentation is being provided by Microsoft, I and Mike Douglas (a fellow Visual Studio ALM MVP) have started writing a book on this very topic titled “Extending Team Foundation Server and Visual Studio Online”. The primary focus of this book will be to provide scenario-based examples on how to utilize the new REST-based APIs and Service Hooks. Based on our everyday experiences with TFS and Visual Studio Online,…
Read More

Even More of Getting Started with the TFS 2010 Object Model

Conferences, TFS, TFS API
Back in October, I presented on Getting Started with the TFS Object Model (as well as a look at what’s coming in Visual Studio 11) at the Tulsa TechFest.  I had intended to post the source code for the demos I ran through during my talk but I never got around to it and it completely slipped my mind.  A few days ago, I was gently reminded by one of the attendees (thanks Sean!) that I had not posted the source code so, here I am! Below is a screen shot of the main window displayed by the demos.  This application has 10 basic types of functionality that can be demonstrated.  The first two are demonstrated by clicking on the ellipses buttons in the upper right of the window which…
Read More

OTSUG Meeting: Kinect + TFS = Kinban

TFS API, User Group
Although the Omaha Team System User Group has not met in several months we had a great meeting tonight.  As always, our meeting was hosted by Farm Credit Services of America (FCSAmerica).  This time, however, we had the privilege of meeting in the brand new building that just opened last month.  The new building is outstanding and the meeting space for after-hours events just can’t be topped!  Thanks again to FCSAmerica for sponsoring our user group! Tonight’s topic, Kinban, was presented by Jeremy Novak (side note: Jeremy presented once before for the OTSUG about two and a half years ago).  Kinban is a product that was born out of an internal initiative at FCSAmerica called GeekFest 2011.  Kinban adds life to your planning meetings and morning stand-ups by allowing the…
Read More

Getting Up and Running with the TFS 2010 Object Model

TFS, TFS API
I recently wrote a post for the MVP Award Program blog titled “Getting Up and Running with the TFS 2010 Object Model”.  If you are looking for some basic information on how to start writing your first Team Foundation Server utility then please check it out.  If you have any questions and/or regarding the post please let me know.
Read More

Adding Properties to Artifacts within TFS 2010

TFS, TFS API
As you know, you can store a lot of information within Team Foundation Server – in the form of Work Items and Versioned Items (e.g. source code).  While these are great features within TFS there are times when you want to store other types of information within TFS and/or “tag” existing items with custom information.  For example, if you create a Visual Studio add-in for TFS, you might want to store the add-in’s properties within TFS such that they “follow” the developer from machine to machine – or - maybe you want to store some custom information with a specific changeset?To help with the above scenarios (and many others) Team Foundation Server 2010 introduces the concept of Properties.  There are several types (Artifact Kinds) of properties defined within TFS (this…
Read More

TFSExamples.com – Part II

TFS, TFS API
A while back, I blogged about a new site that I created called TFSExamples.com with the intent that it serve as a community-based repository for examples showing how to make use of the TFS object model.  Several great examples were added by various supporters over the last year or so. Several weeks ago, the server hosting this site crashed and I have just now got the site back up and running again.  The down side – my latest backup of this particular site (that was actually usable) was about 14 months old.  I was able to restore a few of the examples but the site is missing several of the great examples that had been added.  I was hoping that I could retrieve some of the examples from Google’s cached…
Read More

Get Files Associated with a Build

Code Snippet, TFS API
One of the greatest features of Team Foundation Server is it's extensibility via the TFS Object Model.  A short while back I received a question asking how to retrieve a list of all files included in all the changesets associated with a build.  The intent (of the person asking the question) was to deploy only those files that had been modified in one of the changesets. The following code example is what I came up with.  I can't say it's the only way, or even the most efficient way, to achieve the desired result, but it's at least one way :-)  I've also posted this example on TFSExamples.com, here. /// /// Gets a list of files included in all changesets associated with the specified build URI./// /// The name of…
Read More

DelayedBuildTask

Team Build, Team System, TFS, TFS API
A few days ago a fellow co-worker asked me if I could create a simple build task that would allow anyone on their team the opportunity to cancel a build, once it has been queued, before the build actually did anything.  The idea was simple: A new build gets queued. The build sends out an e-mail notification (via a custom task) informing the recipients that a new build has been queued.  The e-mail message also has a link that, when clicked, will cancel the build. The build waits a pre-determined amount of time (e.g. 5 minutes) giving the e-mail recipients a chance to cancel the build before it continues. If the build is not canceled, the build will proceed as usual once the delay has expired. The driving reason behind…
Read More

Cleaning Up Old Team Projects

Team System, TFS, TFS API, Utilities
A few days ago a co-worker sent out an e-mail asking if any of several team projects were still in use; if not, then they would be removed from Team Foundation Server. Looking at the list it was easy enough to recognize a few active projects but others would take more investigation.  After sending my feedback I thought a custom utility might be helpful in the future for the next round of potential deletion candidates.  So, I decided to put the TFS Object Model (TFSOM) to use and created TFSunset (see screen shot below). TFSunset uses the TFSOM to query the version control system and work item store for activity within a specified time range (e.g. the last 30 days).  All team projects for a given team foundation server are…
Read More