Artifact Provider Obligations

Any tool that hosts artifacts is an artifact provider. An artifact provider has the following responsibilities. Some of these responsibilities are optional, while others are mandatory

Artifact Provider

At registration time, each artifact provider:

  • Must register each artifact type it hosts with Team Foundation Core Services.

  • Must register any events it can raise. This includes artifact change events.

  • Must register the URL of its provider Web service interface in the Service Interfaces area of Team Foundation Server registration.

Each artifact provider:

  • Must offer an interface that can return the Visual Studio 2005 Team Foundation Server URI for each artifact it owns.

  • Must implement ILinkingProvider on the registered provider Web service interface. It must offer a GetArtifacts method that can be used to retrieve instances of each artifact type it owns.

  • Should include a URI for an artifact as a return value in each method that returns an artifact instance.

  • Must raise an event when an artifact it owns is created, deleted, or changed in a way that causes a GetArtifacts method execution for that artifact to return a different result.

  • Should offer an ASP-based way to handle external addressability for each artifact type it provides.

  • May implement a client API that responds to in-the-IDE requests for artifacts it owns (ExecuteDefaultAction). Team Foundation Core Facilities. Others can use it to provide uncoupled access between an artifact consumer and provider.

Artifact Type Registration

Registration of artifact types and link types can occur at installation time or dynamically at run time.

The following information is required for each artifact type:

  • Tool (artifact provider) responsible for artifacts of this kind

  • Artifact type name that is not localizable

  • Artifact type label that is localizable

The following information is required for each link type:

  • Artifact type name of referring artifact

  • Link type name that is not localizable

  • Link type label that is localizable

  • Inverse link type label that is localizable

  • An optional referenced artifact types array

Remarks:

  • Link type label: Forward and inverse provide readings in either direction; for example, A refers to B and B is referred to by A.

  • If the referenced artifact types array is empty, the referenced end of the link is untyped. That is, links of this kind may point to any artifact.

  • Each element in the referenced artifact types array indicates both the referenced artifact type’s service and the referenced artifact type’s name.

See Also

Concepts

Linking Service

Team Foundation Linking Basics

Artifact Provider Obligations

Linking Service Glossary