Compartir a través de


Migración del OM del cliente WIT a las API REST

Azure DevOps Services

Importante

Se requiere reemplazo de tecnología heredada

El OM de Cliente WIT (modelo de objetos de cliente de seguimiento de elementos de trabajo) es una tecnología heredada que debería ser reemplazada por modernas bibliotecas cliente .NET basadas en REST. La migración proporciona un mejor rendimiento, seguridad y compatibilidad multiplataforma.

Esta guía le ayuda a migrar el código de .NET desde el OM de cliente WIT en desuso a las API REST modernas. La migración ofrece ventajas significativas:

✅ Ventajas modernas:

  • Operaciones asincrónicas para mejorar el rendimiento
  • Autenticación moderna con identidades administradas y entidades de servicio
  • Compatibilidad multiplataforma (.NET Core, .NET 5+, y .NET Framework)
  • Desarrollo activo y soporte técnico continuo

❌ Limitaciones heredadas:

  • Limitado solo a .NET Framework y Windows
  • Operaciones sincrónicas y de bloqueo
  • Métodos de autenticación obsoletos

Información general sobre la migración

Paso 1: Actualización de paquetes NuGet: reemplace el OM del cliente WIT por los paquetes de cliente REST modernos Paso 2: Actualización de la autenticación: Migración a métodos de autenticación seguros y modernos Paso 3: Conversión de operaciones: Reemplazo de llamadas sincrónicas con operaciones REST asincrónicas

Para obtener ejemplos de código detallados y ejemplos de migración paso a paso, consulte la Guía de migración de OM del cliente WIT de Azure DevOps de GitHub.

Tabla de migración de escenarios comunes

En la tabla siguiente se muestra cómo migrar operaciones de elementos de trabajo comunes desde el OM del cliente WIT heredado a las API REST modernas:

Escenario OM del cliente WIT heredado API REST moderna
Obtener la lista de elementos de trabajo WorkItemStore.Query Elementos de trabajo: lista
Obtener un único elemento de trabajo WorkItemStore.GetWorkItem Elementos de trabajo: obtener elemento de trabajo
Crear nuevo elemento de trabajo WorkItem Elementos de trabajo: crear
Actualización del elemento de trabajo existente WorkItem.Fields Elementos de trabajo: actualización
Validar un elemento de trabajo WorkItem.IsValid(),
WorkItem.Validate()
Elementos de trabajo: actualización (solo validación)
Crear un vínculo a un elemento de trabajo existente WorkItem.WorkItemLinks.Add Elementos de trabajo: actualización (agregar vínculo)
Adición de un comentario WorkItem.History Elementos de trabajo: actualización (agregar comentario)
Crear un hipervínculo WorkItem.Links.Add() Elementos de trabajo: actualización (agregar hipervínculo)
Agregar datos adjuntos WorkItem.Attachments.Add() Elementos de trabajo: actualización (agregar datos adjuntos)
Consulta de elementos de trabajo mediante WIQL WorkItemStore.Query() Wiql- Consulta por Wiql
Ejecución de una consulta existente para obtener elementos de trabajo WorkItemStore.Query() Wiql: consulta por identificador
Obtener la lista de tipos de elementos de trabajo para el proyecto Categoría.TiposDeElementosDeTrabajo Tipos de elementos de trabajo: lista
Obtener detalles del tipo de elemento de trabajo Categoría.TiposDeElementosDeTrabajo Tipos de elementos de trabajo: obtener
Obtener la lista de campos de un tipo de elemento de trabajo WorkItemType.FieldDefinitions Campo de Tipos de Elemento de Trabajo - Lista
Obtener detalles del campo WorkItemType.FieldDefinitions Tipos de campos de elementos de trabajo: obtener

Migración de autenticación

Autenticación heredada (❌ Reemplazar):

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

Autenticación moderna (✅ recomendado):

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

Pasos y recursos siguientes

📖 Recursos de migración esenciales

🔧 Ejemplos de código y herramientas

🆘 Soporte técnico y comunidad

Sugerencia

Inicie la migración: Comience con las instrucciones de autenticación para elegir el enfoque adecuado y, a continuación, consulte Ejemplos de biblioteca cliente de .NET para ver ejemplos de código de trabajo.