Partager via


Migrer de l'OM Client WIT vers des API REST

Azure DevOps Services

Importante

Remplacement de la technologie héritée requis

Le modèle objet client WIT (Work Item Tracking Client Object Model) est une technologie héritée qui doit être remplacée par des bibliothèques clientes .NET modernes basées sur REST. La migration offre de meilleures performances, une meilleure sécurité et une prise en charge multiplateforme.

Ce guide vous aide à migrer votre code .NET de l’om client WIT déconseillé vers des API REST modernes. La migration offre des avantages significatifs :

✅ Avantages modernes :

  • Opérations asynchrones pour améliorer les performances
  • Authentification moderne avec identités gérées et principaux de service
  • Prise en charge multiplateforme (.NET Core, .NET 5+ et .NET Framework)
  • Développement actif et support continu

❌ Limitations héritées :

  • Limité à .NET Framework et à Windows uniquement
  • Opérations synchrones et bloquantes
  • Méthodes d’authentification obsolètes

Vue d’ensemble de la migration

Étape 1 : Mettre à jour les packages NuGet - Remplacer le modèle de client WIT par les packages clients REST modernes Étape 2 : Mise à jour de l’authentification - Migrer vers des méthodes d’authentification sécurisées, méthodes d’authentification modernes Étape 3 : Convertir les opérations - Remplacer les appels synchrones par des opérations REST asynchrones

Pour obtenir des exemples de code détaillés et des exemples de migration pas à pas, consultez le Guide de migration du modèle client WIT Azure DevOps GitHub.

Table de migration de scénarios courants

Le tableau suivant montre comment migrer les opérations courantes sur les éléments de travail de l’ancien client WIT OM vers les API REST modernes :

Scénario Client WIT hérité OM API REST moderne
Obtenir la liste des éléments de travail WorkItemStore.Query Éléments de travail - Liste
Obtenir un élément de travail unique WorkItemStore.GetWorkItem Éléments de travail - Obtenir un élément de travail
Créer un élément de travail WorkItem Éléments de travail - Créer
Mettre à jour l’élément de travail existant WorkItem.Fields Éléments de travail - Mise à jour
Valider un élément de travail WorkItem.IsValid(),
WorkItem.Validate()
Éléments de travail - Mettre à jour (valider uniquement)
Créer un lien vers un élément de travail existant WorkItem.WorkItemLinks.Add Éléments de travail - Mise à jour (ajouter un lien)
Ajouter un commentaire WorkItem.History Éléments de travail - Mise à jour (ajouter un commentaire)
Créer un lien hypertexte WorkItem.Links.Add() Éléments de travail - Mettre à jour (ajouter un lien hypertexte)
Ajouter une pièce jointe WorkItem.Attachments.Add() Éléments de travail - Mettre à jour (ajouter une pièce jointe)
Interroger des éléments de travail à l’aide de WIQL WorkItemStore.Query() Wiql - Requête via Wiql
Exécuter une requête existante pour obtenir des éléments de travail WorkItemStore.Query() Wiql - Interroger par ID
Obtenir la liste des types d’éléments de travail pour le projet Catégorie.TypesDÉlémentDeTravail Types d’éléments de travail - Liste
Obtenir les détails du type d’élément de travail Catégorie.TypesDÉlémentDeTravail Types d’éléments de travail - Obtenir
Obtenir la liste des champs d’un type d’élément de travail WorkItemType.FieldDefinitions Champ Types d’éléments de travail - Liste
Obtenir les détails du champ WorkItemType.FieldDefinitions Champ Types d’éléments de travail - Obtenir

Migration de l’authentification

Authentification héritée (❌ remplacer) :

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

Authentification moderne (✅ recommandé) :

// 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);

Étapes et ressources suivantes

📖 Ressources de migration essentielles

🔧 Exemples de code et outils

🆘 Support et communauté

Conseil / Astuce

Démarrez votre migration : Commencez par des instructions d’authentification pour choisir la bonne approche, puis consultez les exemples de bibliothèque de client .NET pour obtenir des exemples de code de travail.