Infosys Microsoft Alliance and Solutions blog

« Legacy Modernization Assessment | Main | Handle 100 million users on website »

TFS talking to other Databases

Can TFS talk to other databases from its Application Layer Web Services?

Well the answer to this question is Yes and No Smile. “No” because the TFS Application Layer Web Services are tightly coupled to TFS Database and there is little scope for us to do any modifications there. “Yes” because there is a work around for this, of course with its own set of issues.

So what is the work around we have?..............

The extensibility option of TFS comes handy here. Whenever there is an update to the TFS Database, Notification Events are raised. There are close to a dozen of such events to which subscribers can subscribe to (more details on how to subscribe can be found in the MSDN documentation), like in this case one can subscribe to WorkItemChangedEvent. TFS also provides a standard Event Handler called Notify which takes in eventXml as parameter. This is the xml representation of the change that has happened in the TFS database. E.g. if a work item is added to the TFS database, then this xml will have all the data of the item that has been created. This data can be extracted from the xml and then updated to the external database accordingly in the event handler.

Of course, this may not be an elegant solution, however for people who want to capture this data in a different database for what ever reason; this is the only possible approach

Thanks and Regards

PrashanthG

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/microsoft-mt/mt-tb.fcgi/12

Comments

Apart from can app layer talk to other DBs another question will be can TFS itself be hosted on another DB than SQL? I was attending the MS Synergize2Energize happening across multiple cities in India and they categorically stated that it isn't possible.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)