Trabajo con .NET desde los tiempos de .NET Framework 4.5. Cada nueva versión traía algo interesante pero también algo que romper. El salto de .NET 8 a .NET 10 es diferente: es una consolidación. Rendimiento extremo, sintaxis más limpia, herramientas que finalmente hacen lo que uno espera. Esta serie cubre todo lo que vale la pena conocer.
La política de versiones de .NET: qué es LTS y por qué importa
Microsoft lanza una versión mayor de .NET cada noviembre. Las versiones pares son LTS (Long Term Support) — soporte por 3 años. Las impares son STS (Standard Term Support) — soporte por 18 meses. En producción, siempre apunto a LTS.
| Versión | Tipo | C# | Fin de soporte | Estado |
|---|---|---|---|---|
| .NET 8 | LTS | C# 12 | Nov 2026 | ✅ En soporte |
| .NET 9 | STS | C# 13 | May 2026 | ⚠️ Fin pronto |
| .NET 10 | LTS | C# 14 | Nov 2028 | ✅ Actual recomendado |
Lo más importante de cada versión en un vistazo
.NET 8 / C# 12 (noviembre 2023)
- Primary constructors en clases y structs
- Collection expressions:
[1, 2, 3]para arrays, listas y spans - Spread operator
..para combinar colecciones - Inline arrays de alto rendimiento
- Using aliases para cualquier tipo (incluso tuplas y punteros)
- Lambdas con parámetros opcionales y params
.NET 9 / C# 13 (noviembre 2024)
params ReadOnlySpan<T>: cero asignaciones en heap para métodos variádicosSystem.Threading.Lock: tipo de primera clase para exclusión mutuaTask.WhenEach: procesar tareas a medida que terminan- LINQ:
CountBy(),AggregateBy(),Index() - Nuevos miembros
partialen clases parciales - OpenAPI built-in en Minimal APIs
.NET 10 / C# 14 (noviembre 2025)
- Palabra clave
field: acceso al backing field autogenerado - Extension members: propiedades y miembros estáticos de extensión
- Stack allocation inteligente para arrays pequeños
- Native AOT mejorado: binarios más pequeños, arranque más rápido
dotnet run script.cs: ejecutar archivos sin proyecto- Mejoras profundas en el GC
¿Por qué actualizar desde .NET 8 a .NET 10 ahora?
Si estás en .NET 8 LTS, no hay urgencia — tiene soporte hasta noviembre 2026. Pero .NET 10 ofrece mejoras de rendimiento concretas que se traducen en menor uso de memoria, menor latencia y binarios más chicos. En mis APIs en producción, la migración de .NET 8 a .NET 10 redujo el uso de memoria de los pods en Kubernetes entre un 15 y un 25%.
# Verificar versión instalada
dotnet --version
# Instalar .NET 10 SDK
# Linux/WSL:
wget https://dot.net/v1/dotnet-install.sh
bash dotnet-install.sh --channel 10.0
# Ver SDKs disponibles
dotnet --list-sdks
# Cambiar un proyecto a .NET 10
# En el .csproj:
# <TargetFramework>net10.0</TargetFramework>
El contexto: .NET unificado, multiplataforma y de alto rendimiento
Desde .NET 5, Microsoft unificó el ecosistema: ya no hay .NET Framework, .NET Core y Xamarin como caminos separados. Todo es .NET. Corre en Windows, Linux, macOS, Android, iOS, WASM. Un solo SDK, una sola librería estándar, un solo modelo de deployment.
Para los que venimos del mundo de .NET Framework y ASP.NET MVC clásico, este es el contexto del que partimos. Para los que arrancaron directamente con .NET Core: la dirección es la misma, pero el ritmo de mejoras se aceleró. Esta serie cubre exactamente qué cambió y cómo aprovecharlo.
Serie .NET 8 → .NET 10 | Próximo: C# 12: Primary Constructors, Collection Expressions y el código que debería haber existido siempre →
Deja una respuesta