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 クライアント ライブラリのサンプル - 先進認証を使用した運用対応のコード例
- 認証ガイダンス - シナリオに適した認証方法を選択する
- .NET クライアント ライブラリの概念 - 最新のクライアント アーキテクチャについて
🔧 コード例とツール
- コード サンプルを含む移行ガイド - 詳細な移行例を含む GitHub リポジトリ
- 作業項目追跡 REST API ドキュメント - 例を含む完全な API リファレンス
🆘 サポートとコミュニティ
- Azure DevOps 開発者コミュニティ - 質問してヘルプを表示する
- 移行ガイドの問題 - 不足しているシナリオを報告するか、特定のヘルプを表示する
🔄 関連する移行
- Azure DevOps Server から Azure DevOps Services にデータを移行する - サービス移行ガイダンス
- 従来の SOAP クライアント サンプル - 他のレガシ クライアント パターンのリファレンス
ヒント
移行を開始します。 適切な方法を選択するための 認証ガイダンス から始めて、作業コード例については .NET クライアント ライブラリのサンプル を参照してください。