DCSIMG
November 2006 - Posts - SRL Group

SRL Group

This blog is about Team System, QA and Development methodologies and more...

VSTS Resources

Team System Bloggers

November 2006 - Posts

DB Dude CTP7 - Some Answers

I wrote some time ago about CTP7 requirments. Today I receive some answers from Hila Lahav (Life Cycle Technoogy Specialist from MS Israel). So here it goes:
  • "Visual Studio Team Suite required for CTP7 installation. You can use trial (180 day) version from here; or retail copy. For many clients this change can prevent evaluation. I can not see how client replace retailed VSTE Developer Edition with Team Suite trial. Bad call."

    Hila: We do not provide a Trial for any of the Editions but the Suit. Hence, a user with retailed Developer edition that would like to Test the Tester or Architect Edition on her own working station, will have to install the Suit on top of it. This is the only Trial version we enable.

    I have no problem at all with trial version. The question is why you cannot install DB Dude upon licensed copy of Visual Studio Developer, Tester or Architect addition? This is still does not make any sense to me.

  • "CTP7 require MS SQL 2005 Developer or Enterprise version local installation. Sql Express can not be used any more, nether remote server. For many organisations with strong security policies it will be showstopper even before cost considerations"

    Hila: Tom Paton's answer from tonight" I believe CTP7 does in fact support SQLExpress.  CTP6 didn’t.  Maybe he got confused on the versions.   In any case, RTM will support SQLExpress"

    I was unable to install CTP7 on machine without SQL2K5 Developer Edition (tried with SQL Express without any success). I can live with this just fine as long as I know that RTM will support SQL Express again. We have one day left for RTM release, so I guess we'll know tomorrow

Israeli Developers Event of the Year is Coming

It is finally going public. After some delay, the main Israel developer event of the year is scheduled for 31/01/2007. Vista, Office 2007, .NET Framework 3.0 are some of the topics, but...

It will not be introduction-presale event. It should be built from solid, real life, deeply technical lectures. We will try to present "How To" sessions instead of features overview.

And of cause Team System is important enough to talk about (including DB Dude). The lectures are far to be closed and ready, so any suggestions are more then welcome.

See you there!

TFS Permission Manager 1.0 is Finally out

Working with Team Foundation Server we have to perform various repeating task related to user declaration and permission setting. I already wrote about TFS permission and tools. Managing permissions is complicated, and from time to time quite frustrating.  I've decided that it would be a better use of my time to assemble such a tool than just manually applying permissions again and again... 

 

Using this tool you can:

  • Add or remove TFS group membership, Reporting Services role membership and SharePoint role membership
  • Set Server and Project-level permissions
  • Set AreaPath and Source Control permissions
  • Create new TFS users with permissions identical to those of specified existing user
  • Save user permissions as template and use it later to create new or update existing users.

TFS Permission Manager v1.0 is finally out. You can download it from here. I hope this utility will be useful.

As usual, I'll be happy to get any feedback.

Setting TFS Notification Problem

I used recently one of our custom administration utilities to set email notification for TFS users. Suddenly I received error for one of users, saying that filter expression is invalid. It was a little odd. There was nothing different in this user definition at first sight, our utility was working fairly well till this moment. After short research the problem was found. The unfortunate user had apostrophe in his name. A moment before diving into my code to look for the bug, I tried to set mail notification for the same user from Team Explorer (Team>Project Alerts...). Surprise, surprise it throw exception as well. OK my friends O'Hara and O'Connor, no emails from Team System for you...

So where is the problem? Since RC, TFS uses Display Name instead active directory User Name to identify users. As you can guess, notification uses XPath expression to filter events. Part of it looks like this:

"CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/OldValue" = '<user name>' OR "CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/NewValue\" = '<user name>'

Replacing <user name> with  actual apostrophe containing name is not a very good idea from the XPath point of view.

The good news are that my utility fix was very simple. All I had to do was to replace apostrophe with quote mark (").
The bad news - there is no way (as far as I know) to do it from Team Explorer. If you don't have better administration tool, you will have to use BisSubscribe command line utility to fix notification for some Irish guys. The complete command you will need to set Work Item change notification (just replace values in angular brackets) is:

BisSubscribe /eventType WorkItemChangedEvent /address <user@email.com> /deliveryType EmailHtml /server <server name> /filter "\"PortfolioProject\" = '<project name>' AND (\"CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/OldValue\" = \"<user display name>\" OR \"CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/NewValue\" = \"<user display name>\") AND \"CoreFields/StringFields/Field[ReferenceName='System.AuthorizedAs']/NewValue\" <> \"<user display name>\""

Get Latest on Check Out

One of VSTS source control features that is hard to explain to clients that are used to VSS is a new Check Out behavior. In VSTS (in opposite to VSS) Check Out action does not perform Get Latest Version. Such a behavior is very useful in some scenarios, but is very annoying in others (for example when team members use exclusive check out). Following users feedback, Get Latest on Check Out feature planned for the next VSTS release. It will allow us to configure VSTS to mimic previous VSS behavior (automatically get latest version before checking files out).

DB Dude Release at November 30

Team System for Database Professionals Release date was announced at TechEd Barcelona. It will be out at November 30. Believe it or not, despite the problems and concerns, we are already leading couple of projects involving DB Dude.

2 weeks for RTM!

Don’t change to Locale!! – TFS Cube Errors

We got a phone call from one of our customers the other day, saying that they cannot run the reports.

When we get these kinds of complaints, the best thing to do is go through the Warehouse Troubleshooting Guide, unfortunately, nothing helped and each time we tried to process the cube we got error messages indicating something is wrong in the TODAY dimension:
The member '[31/10/2006]' was not found in the cube when the string, [Date].[Date].[Date].[31/10/2006], was parsed.
The END SCOPE statement does not match the opening SCOPE statement.

We thought that we had solved the problem when we realized that the regional settings were changed, and that the server is run with different locale from the one that was used upon TFS installation. But, this did work either. Help came from the guy writing this blog

Apparently, changing the locale is not enough, since on a Win2003 you have to make sure the change is applicable to all users (regional settings --> advances --> apply all settings to the current user account) or just log in with the account running the cube processing service (Usually TFSService) and then changing the locale. Afterward we run TFSWarehouse and the cube was finely processed.

Thanks Dudu!!!

Updated TFS Guides

TFS Installation Guide and TFS Administration Guide were updated. It is strongly advised to use linked version instead of those found on installation media.

Team System Notifications

Team System has a built-in, extendable alerting mechanism. It is based on SQL Server 2005 Notification Services. Microsoft SQL Server Notification Services is a platform for developing and deploying applications that generate and send notifications to subscribers.

 

This walkthrough will help you understand the notification mechanism and provide you the knowledge needed to apply them.

 

Events on Team System

 

TFS can process the following predefined events:

 

Event

Description

AclChangedEvent

Raised when an access control list has been changed

Branchmovedevent

Raised when a branch has been moved

BuildCompletionEvent

Raised when team build has been completed

BuildStatusChangeEvent

Raised when a team build status has been changed

CheckInEvent

Raised when a check in operation has been occurred

DataChangedEvent

Raised when a data has been changed

IdentityChangedEvent

Raised when an identity has been changed

IdentityCreatedEvent

Raised when an identity has been created

IdentityDeletedEvent

Raised when an identity has been deleted

MembershipChangedEvent

Raised when a group membership has been changed

WorkItemChangedEvent

Raised when a work item data has been changed

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Each event is  passing xml data as a parameter to its subscribers. The schema of xml parameters differs from one event to another.

You can find type definitions for TFS events parameters in this folder:

[C:]\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Services\v1.0\Transforms

 

Subscription types

Notifications can be delivered either in the form of an email notification or of a SOAP Endpoint (a Web Service).

 

Query your current subscriptions

 To view a list of your current subscriptions, you have to run a query on:

Databse: TfsIntegration

Table: tbl_subscription

Query: SELECT * FROM tbl_subscription

 

 

Web service listener implementation:

Each web contains one method called "Notify". The method accepts one parameter eventXml that contains the event data based on the event's schema.

To implement the web service, use the following signature:

 

 

[SoapDocumentMethod(Action = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify", RequestNamespace = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03")]

[WebMethod]

public void Notify(string eventXml)

{

      Enter your code here…

}

You can download TFS Notification Web Service project template from here

 

Subscription tool for notifications

To subscribe to one of the events, you should use the BisSubscribe.exe tool.

You can find it at: [C]:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup

 

Usage:

BisSubscribe /eventType  /address  [/deliveryType EmailHtml|EmailPlaintext|Soap]  [/server ] [/filter ] [/tag ]

BisSubscribe /unsubscribe /id  [/server ]

 

where:

eventType:        The name of the event.  (Case sensitive)

filter:                 A filter expression. default = none

address:            The email address or webmethod URL for the subscriber.

server:              The Team Foundation Server name.

tag:                   A field to later use to identify this subscription. default = none deliveryType: EmailHtml|EmailPlaintext|Soap indicating the preferred format. default =  Soap

id:                     The integer id for the subscription to be deleted when unsubscribing.

 

You can also check out open source TFS Even Subscriber GUI utility

 

Another way to subscribe is through the API. See this post.

 

Troubleshooting

 

(Thanks to Naren)

DB Dude CTP7 Strange Decisions

VSTE for Database Professionals (aka DB Dude) CTP7 was released about a week ago. You can download it from here. It should be last CTP before final release. There are some new features in addition to more then 200 bug fixes in this version. Read this post for complete description.

Two changes disturb me:

1. Visual Studio Team Suite required for CTP7 installation. You can use trial (180 day) version from here or retail copy. For many clients this change can prevent evaluation. I can not see how client replace retailed VSTE Developer Edition with Team Suite trial. Bad call.

2. CTP7 require MS SQL 2005 Developer or Enterprise version local installation. Sql Express can not be used any more, nether remote server. For many organisations with strong security policies it will be showstopper even before cost considerations.