El ecosistema abierto
16 pasos en 7 series de C#.
La mitad del C# que se usa a diario nunca se escribió en Microsoft. Newtonsoft.Json fue el proyecto personal de un desarrollador que llegó a ser el paquete más descargado de NuGet. Dapper se construyó dentro de Stack Overflow para acelerar su SQL y siguió siendo abierto cuando salió de ahí. Serilog, Polly, xunit, CsvHelper, Spectre.Console — las bibliotecas de este tour son proyectos comunitarios con sus propios mantenedores, sus propias opiniones y, en varios casos, APIs tan buenas que Microsoft las imitó después.
Cada serie de aquí es una introducción práctica a una biblioteca: el JSON dinámico de Newtonsoft, el mapeo de SQL de Dapper, los eventos estructurados de Serilog, los reintentos y timeouts de Polly, y el dúo de pruebas de xunit y Shouldly. Cada fragmento compila contra los paquetes reales, restaurados desde NuGet, así que lo que tecleas es lo que estas bibliotecas aceptan de verdad.
JSON con Newtonsoft
- JObjectLa vista dinámica de JSON de Newtonsoft: parsear, leer, parchar, escribir.
- JsonConvertEl serializador que cargó con el JSON de .NET durante una década.
- LINQ to JSONConsultar el árbol JSON en sí, antes de que exista clase alguna.
Datos con Dapper
- Consultas con DapperSQL de entrada, objetos tipados de salida, nada en medio.
- Parámetros con DapperSQL parametrizado a partir de objetos anónimos.
Logging con Serilog
- Eventos estructuradosRegistrar propiedades como datos, no como sopa de cadenas.
- Contexto de logEmpuja una propiedad una vez; cada evento del ámbito la lleva.
Resiliencia con Polly
- Políticas de reintentoFallo transitorio, te presento a la persistencia declarativa.
- TimeoutsUn plazo que el callback no puede negociar.
Pruebas
Consola y texto
- Tablas con SpectreTablas de verdad y color en una terminal, desde C# puro.
- HumanizerValores del programa, convertidos en oraciones.
Bis
- csv_report.csCsvHelper parsea, LINQ agrega, Spectre renderiza.
- fake_seed_data.csBogus genera los datos de prueba realistas que no querías escribir a mano.