次の方法で共有


WIT クライアント OM から REST API への移行

Azure DevOps Services

Von Bedeutung

従来のテクノロジの交換が必要

WIT クライアント OM (作業項目追跡クライアント オブジェクト モデル) は、最新の REST ベースの .NET クライアント ライブラリに置き換える必要があるレガシ テクノロジです。 移行により、パフォーマンス、セキュリティ、クロスプラットフォームのサポートが向上します。

このガイドは、.NET コードを非推奨の WIT クライアント OM から最新の REST API に移行するのに役立ちます。 移行には大きな利点があります。

✅ 最新の利点:

  • パフォーマンスを向上するための非同期操作
  • マネージド ID とサービス プリンシパルを使用した先進認証
  • クロスプラットフォーム のサポート (.NET Core、.NET 5 以降、.NET Framework)
  • アクティブな開発と継続的なサポート

❌ 従来の制限事項:

  • .NET Framework と Windows のみに限定
  • 同期およびブロッキング操作
  • 古い認証方法

移行の概要

手順 1: NuGet パッケージの更新 - WIT クライアント OM を最新の REST クライアント パッケージに置き換える 手順 2: 認証を更新する - セキュリティで保護された最新の認証方法に移行 する 手順 3: 操作を変換する - 同期呼び出しを非同期 REST 操作に置き換える

詳細なコード例とステップ バイ ステップの移行サンプルについては、 GitHub Azure DevOps WIT クライアント OM 移行ガイドを参照してください。

一般的なシナリオの移行表

次の表は、一般的な作業項目操作を従来の WIT クライアント OM から最新の REST API に移行する方法を示しています。

シナリオ レガシ WIT クライアント OM モダン REST API
作業項目の一覧を取得する WorkItemStore.Query 作業項目 - リスト
1 つの作業項目を取得する WorkItemStore.GetWorkItem 作業項目 - 作業項目の取得
新しい作業項目を作成する WorkItem 作業項目 - 作成
既存の作業項目を更新する WorkItem.Fields 作業項目 - 更新
作業項目を検証する WorkItem.IsValid(),
WorkItem.Validate()
作業項目 - 更新 (検証のみ)
既存の作業項目へのリンクを作成する WorkItem.WorkItemLinks.Add 作業項目 - 更新 (リンクの追加)
コメントを追加する WorkItem.History 作業項目 - 更新 (コメントの追加)
ハイパーリンクの作成 WorkItem.Links.Add() 作業項目 - 更新 (ハイパーリンクの追加)
添付ファイルを追加する WorkItem.Attachments.Add() 作業項目 - 更新 (添付ファイルの追加)
WIQL を使用して作業項目のクエリを実行する WorkItemStore.Query() Wiql - Wiql によるクエリ
既存のクエリを実行して作業項目を取得する WorkItemStore.Query() Wiql - ID によるクエリ
プロジェクトの作業項目の種類の一覧を取得する Category.WorkItemTypes 作業項目の種類 - リスト
作業項目の種類の詳細を取得する Category.WorkItemTypes 作業項目の種類 - 取得
作業項目の種類のフィールドの一覧を取得する WorkItemType.FieldDefinitions [作業項目の種類] フィールド - リスト
フィールドの詳細を取得する WorkItemType.FieldDefinitions [作業項目の種類] フィールド - 取得

認証の移行

レガシ認証 (❌ 置換):

// WIT Client OM with basic authentication
using (var tpc = new TfsTeamProjectCollection(new Uri(collectionUri)))
{
    tpc.Authenticate();
    var workItemStore = tpc.GetService<WorkItemStore>();
}

先進認証 (✅ 推奨):

// REST client with managed identity (for Azure-hosted apps)
var credentials = new VssAzureIdentityCredential();
using var connection = new VssConnection(new Uri(collectionUri), credentials);
var witClient = connection.GetClient<WorkItemTrackingHttpClient>();

// Alternative: Service principal for CI/CD
// var credentials = new VssServicePrincipalCredential(clientId, clientSecret, tenantId);

// Alternative: PAT for development/testing
// var credentials = new VssBasicCredential(string.Empty, personalAccessToken);

次の手順とリソース

📖 基本的な移行リソース

🔧 コード例とツール

🆘 サポートとコミュニティ

ヒント

移行を開始します。 適切な方法を選択するための 認証ガイダンス から始めて、作業コード例については .NET クライアント ライブラリのサンプル を参照してください。