Start Debugging

Etiqueta: csharp

315 posts · Página13de32

Cómo validar el emisor, la audiencia y la vigencia de un JWT en ASP.NET Core 11
Una guía completa de TokenValidationParameters en ASP.NET Core 11: cómo funcionan ValidateIssuer, ValidateAudience y ValidateLifetime, cuáles son realmente los valores por defecto, por qué Authority configura automáticamente el emisor y las claves de firma, la trampa de los 5 minutos de ClockSkew y cómo leer los códigos de error IDX cuando se rechaza un token que parece válido.
¿Qué es Span<T> en C# y cuándo hace realmente más rápido tu código?
Span<T> es un ref struct que solo vive en la pila y apunta a memoria que ya posees, así que no tiene asignación de respaldo. Acelera el código en exactamente tres situaciones: reemplazar un búfer en el heap con stackalloc, segmentar sin copiar y bucles ajustados donde el JIT elimina las comprobaciones de límites. En cualquier otro caso no cambia nada, y cruzando un await no compila.
2026-06-20 csharpdotnetasync
Qué es ValueTask<T> y cuándo vale la pena
ValueTask y ValueTask<T> son structs que permiten a un método asíncrono devolver un resultado sin asignar un Task en el heap cuando se completa de forma síncrona. La ganancia es una asignación menos en rutas calientes que normalmente terminan sin esperar. El costo es un contrato estricto de esperar-una-sola-vez. Esto es lo que el tipo realmente es, cómo funciona, y el conjunto reducido de casos donde se gana su lugar.
¿Qué es el atributo DynamicallyAccessedMembers?
DynamicallyAccessedMembers le indica al trimmer de .NET y al compilador AOT cuáles miembros de un Type alcanzas por reflexión, para que se conserven en lugar de ser eliminados. Convierte una silenciosa MissingMethodException en runtime en una advertencia IL2070 en tiempo de compilación. Esto es lo que hace el atributo, cómo funciona el análisis de flujo de datos detrás de él y cómo anotar correctamente parámetros, campos y parámetros de tipo genéricos.
Anterior Siguiente