Team Foundation のクライアント オブジェクト モデルを使用した作業項目トラッキングの拡張
作業項目のトラッキングのオブジェクト モデルを使用して、バグ、タスク、および他の種類の作業項目をプログラムによって作成、変更、および検索することができます。 作業項目にアクセスするには、「コンソール アプリケーションからの Team Foundation Server への接続」に説明されているように、Visual Studio Team Foundation Server にまず接続する必要があります。
注意
作業項目の種類をカスタマイズするには、「カスタマイズの共通領域 [リダイレクト]」を参照してください。
一般的なタスク
Team Foundation のクライアント オブジェクト モデルを使用した作業項目の作成
Team Foundation のクライアント オブジェクト モデルを使用した作業項目の編集と保存
(CodePlex) TFS 作業項目トラッキングのカスタム コントロール
Team Foundation のクライアント オブジェクト モデルを使用したさまざまな種類の作業項目のコードの記述
スレッドの考慮事項
アプリケーションがマルチスレッドの場合、スレッドごとに WorkItemStore を作成する必要があります。 スレッドが WorkItemStore を共有する場合、アプリケーションのスケールはうまくいきません。 WorkItemStore および関連するオブジェクトが処理中の場合、WorkItemStore を共有する他のすべてのスレッドはブロックされます。
WorkItemStore を初期化するコストは非常に大きくなります。 ですから、オブジェクトを初期化した後、スレッドの有効期間中はそれに対する参照を維持する必要があります。 たとえば、ASP.NET アプリケーションで作業項目をトラッキングするためにオブジェクト モデルを使用する場合、ユーザー セッションで WorkItemStore オブジェクトをキャッシュするか、スレッド プールを作成して各スレッドで単一の WorkItemStore オブジェクトを使用します。
メタデータ
作業項目データベースにはメタデータのセットが含まれ、作業項目、フィールド、ルール、フォームのそれぞれの型、および作業項目の型が各チーム プロジェクトでどのように構成および使用されるかが説明されています。 WorkItemStore は、そのメタデータのローカル キャッシュを取得および使用します。 メタデータは、これらいずれかの要素が更新されるたびに変更されます。 たとえば、あるフィールドに対して許可された値のリストに値が追加されると、別のバージョンのメタデータが作成されます。 作業項目をトラッキングするためのクライアント オブジェクト モデルは、WorkItemStore が最新のバージョンのメタデータを使用していることを検証します。 システムは、WorkItemStore.Query または WorkItem.Save など、メソッドの呼び出しによってサーバーへのラウンド トリップが発生するたびに、この検証を実行します。 メタデータのより新しいバージョンが存在する場合、システムは更新されたメタデータを取得して、WorkItemStore.MetadataChanged イベントを発生させます。
メタデータの変更によってコードが影響を受ける場合、コードはこのイベントに応答する必要があります。 たとえば、作業項目フォームを表示するコードは、フォームの最新のバージョンが表示されるようにこのイベントに応答する必要があります。
コードで WorkItemStore のインスタンスを求めるプロンプトを表示し、WorkItemStore.SyncToCache を呼び出してローカル メタデータ キャッシュの更新をチェックすることができます。 たとえば、アプリケーションで複数の WorkItemStore オブジェクトを使用する場合、WorkItemStore.MetadataChanged イベントを受け取ると、コードは更新されたバージョンのメタデータ キャッシュを使用するよう WorkItemStore.SyncToCache を使って WorkItemStore オブジェクトを求めるプロンプトを表示できます。
コードで WorkItemStore のインスタンスを求めるプロンプトを表示し、WorkItemStore.RefreshCache を呼び出して更新されたメタデータがあるかどうかサーバーをチェックできます。