All Coder Things
Artículos, referencias y series de proyectos prácticos sobre desarrollo de software.
Guías
Artículos Destacados
Conversiones de tipos en C#
Aprende las conversiones de tipos en C#, incluyendo casting implícito y explícito, Parse, TryParse y métodos Convert con ejemplos.
Estructura de sintaxis de C#
Aprende los fundamentos de la sintaxis de C#, incluyendo bloques de código, comentarios y reglas de nombrado de variables.
LINQ Avanzado en C# (GroupBy, Join, Aggregate)
Aprende LINQ avanzado en C# con GroupBy, Join y Aggregate para realizar consultas complejas de datos.
Clases, Objetos, Propiedades y Métodos en C#
Aprende cómo las clases, objetos, propiedades y métodos en C# forman la base de la programación orientada a objetos.
Introducción a C# y al ecosistema .NET
C# es un lenguaje moderno, seguro y orientado a objetos. Con el ecosistema .NET es posible desarrollar aplicaciones web, móviles, de escritorio y juegos.
Tipos de datos básicos en C#
Tipos de datos básicos en C#: numéricos, de texto, lógicos, orientados a objetos y anulables.
Arreglos (Arrays) en C#
Aprende arreglos en C#: declaración, índices, recorridos con bucles y operaciones básicas con ejemplos prácticos.
Operadores y expresiones en C#
Operadores y expresiones en C#: uso de operadores aritméticos, de comparación, lógicos, de incremento/decremento, ternario y null-coalescing.
Primer proyecto en C#
Primera aplicación de consola en C# con Visual Studio 2022: uso de WriteLine, ReadKey y ReadLine.
Comandos de consola en C#
Aprende a trabajar con aplicaciones de consola en C#, mostrando mensajes, leyendo entradas del usuario y formateando la salida.
Patrones de diseño en C# (Factory, Singleton, Repository, Observer)
Aprende patrones de diseño en C#, como Factory, Singleton y Repository, para desarrollar aplicaciones escalables y mantenibles.
Uso de FluentValidation en C#
Aprende FluentValidation en C# para definir reglas de validación claras y mantenibles.
Uso de BenchmarkDotNet en C#
Aprende BenchmarkDotNet en C# para medir rendimiento y optimizar tu código con métricas precisas.
Consejos de Visual Studio / VS Code para C#
Aprende consejos de Visual Studio y VS Code para C# y mejora tu productividad con atajos y herramientas.
Reflexión y enlace tardío en C#
Aprende Reflection y late binding en C# para inspeccionar tipos en tiempo de ejecución y crear aplicaciones dinámicas.
El concepto de los generadores de código en C# (C# 9+)
Aprende generadores de código en C# para generar código en tiempo de compilación y mejorar el rendimiento.
Optimización del rendimiento con Span y Memory en C#
Aprende optimización de rendimiento en C# con Span
Gestión de memoria y Garbage Collector en C#
Aprende gestión de memoria y garbage collector en C# para comprender el ciclo de vida de objetos y la limpieza de memoria.
IDisposable y el patrón using en C#
Aprende IDisposable y el patrón using en C# para gestionar recursos correctamente y evitar fugas de memoria.
Colecciones en C#: Lista, Diccionario, Cola, Pila
Aprende colecciones en C# como List, Dictionary, Queue y Stack para gestionar datos de forma eficiente con ejemplos.
Interop en C# (Uso de bibliotecas C/C++)
Aprende Interop en C# para trabajar con bibliotecas C/C++, incluyendo P/Invoke y código no administrado.
Delegados y Eventos en C#
Aprende delegados y eventos en C# para crear aplicaciones basadas en eventos con callbacks y ejemplos prácticos.
Constructores, Destructores y this en C#
Aprende a usar constructores, destructores y la palabra clave this en C# para gestionar el ciclo de vida del objeto.
Encapsulación, Herencia y Polimorfismo en C#
Aprende encapsulación, herencia y polimorfismo en C# con ejemplos claros para dominar los principios básicos de la POO.
Métodos y uso de parámetros en C#
Aprende a definir métodos y usar parámetros en C#, incluyendo parámetros por valor y referencia, parámetros opcionales y ejemplos.
Últimos ejemplos
Idempotency Key en ASP.NET Core (.NET 8): evitar POST duplicados
Haz que POST sea seguro ante reintentos: usa Idempotency-Key, guarda la primera respuesta y reprodúcela en duplicados para evitar inserciones dobles.
Ordenar y filtrar de forma segura en ASP.NET Core: Query Builder con whitelist
Analiza ?sort=name,-createdAt&filter=country:TR,status:active de forma segura usando whitelist y mapeo a expresiones/columnas SQL, evitando inyección por campos dinámicos.
Errores de validación en ASP.NET Core: normalizar ModelState a { field, message }[]
Normaliza los errores de ModelState con InvalidModelStateResponseFactory al formato { field, message }[] para que el cliente muestre validaciones de forma consistente.
Crear un ZIP de una carpeta con progreso en .NET (ejemplo WPF)
Genera un ZIP desde una carpeta en .NET y actualiza una ProgressBar en WPF usando ZipArchive e IProgress para una UI fluida.
Formato estándar de respuesta API en ASP.NET Core (Result)
Estandariza las respuestas de éxito y error en ASP.NET Core con un wrapper Result
Rate Limiting por IP en ASP.NET Core (.NET 8): 429 Too Many Requests
Limita solicitudes por IP con el rate limiting integrado de .NET 8 y devuelve 429 con Retry-After para proteger tu API del abuso.
Ejemplos destacados
Errores de validación en ASP.NET Core: normalizar ModelState a { field, message }[]
Normaliza los errores de ModelState con InvalidModelStateResponseFactory al formato { field, message }[] para que el cliente muestre validaciones de forma consistente.
ProblemDetails en ASP.NET Core: errores limpios con TraceId
Mapea excepciones a ProblemDetails (RFC 7807) y devuelve un traceId para errores consistentes y para localizar la petición exacta en los logs.
Idempotency Key en ASP.NET Core (.NET 8): evitar POST duplicados
Haz que POST sea seguro ante reintentos: usa Idempotency-Key, guarda la primera respuesta y reprodúcela en duplicados para evitar inserciones dobles.