Миграция из OM клиента WIT в REST API

Azure DevOps Services

Это важно

Требуется замена устаревших технологий

Клиент OM WIT (клиентская объектная модель отслеживания рабочих элементов) — это устаревшая технология, которую следует заменить современными REST-библиотеками .NET. Миграция обеспечивает более высокую производительность, безопасность и кроссплатформенную поддержку.

Это руководство поможет перенести код .NET из устаревшей версии OM клиента WIT в современные ИНТЕРФЕЙСы REST API. Миграция обеспечивает значительные преимущества:

✅ Современные преимущества:

  • Асинхронные операции для повышения производительности
  • Современная аутентификация с управляемыми удостоверениями и главными службами
  • Кроссплатформенная поддержка (.NET Core, .NET 5+ и .NET Framework)
  • Активная разработка и постоянная поддержка

❌ Устаревшие ограничения:

  • Ограничено только .NET Framework и Windows
  • Синхронные, блокирующие операции
  • Устаревшие методы проверки подлинности

Обзор миграции

Шаг 1. Обновление пакетов NuGet. Замените OM клиента WIT современными пакетами клиентов REST шаг 2. Обновление проверки подлинности — миграция на безопасный, современный метод проверки подлинности шаг 3. Преобразование операций — замена синхронных вызовов асинхронными операциями REST

Подробные примеры кода и пошаговые примеры миграции см. в руководстве по миграции клиента OM клиента GITHub Azure DevOps.

Общая таблица сценариев миграции

В следующей таблице показано, как перенести общие операции рабочих элементов из устаревшей версии клиентской объектной модели (OM) в современные REST API-интерфейсы.

Сценарий Клиент OM Legacy WIT Современный REST API
Получение списка рабочих элементов WorkItemStore.Query Рабочие элементы — список
Получение одного рабочего элемента 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 — запрос по идентификатору
Получение списка типов рабочих элементов для проекта Категория.ТипыРабочихЭлементов Типы рабочих элементов — список
Получение сведений о типе рабочего элемента Категория.ТипыРабочихЭлементов Типы рабочих элементов — получение
Получение списка полей для типа рабочего элемента 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 для примеров рабочего кода.