¿Trabajas con .NET o eres el responsable técnico de un equipo .NET? Este artículo te pone al día en poco tiempo sobre la nueva versión 10 de .NET. Resume las novedades clave de .NET 10 que deberías conocer: rendimiento, IA, C# 14, ASP.NET Core y más. Léelo en pocos minutos y actualiza tu visión técnica.

.NET 10 es la última versión principal de la plataforma de desarrollo de Microsoft. Acaba de salir con muchas novedades y soporte a largo plazo. Este informe está pensado para desarrolladores .NET, arquitectos de soluciones y responsables técnicos. En él vamos a repasar no solo en las nuevas características, sino también algunas implicaciones estratégicas para la planificación, el desarrollo y la adopción de esta tecnología.
El lanzamiento de .NET 10 no solo es cosa de Microsoft, sino que es el resultado del esfuerzo coordinado con otros miles de desarrolladores de la comunidad global. Gracias a ello, según Microsoft, esta es la versión de .NET con el mayor nivel de productividad, modernidad, seguridad, rendimiento e "inteligencia" (la IA aquí tiene mucho que decir) hasta la fecha.
Arrancamos con una cosa muy importante: el estatus de .NET 10 como una versión de Soporte a Largo Plazo (LTS), que garantiza estabilidad y previsibilidad para las aplicaciones en producción.
1.- Ciclo de vida y soporte a largo plazo (versión LTS)
La gestión del ciclo de vida del software es un componente crítico de la estrategia empresarial y la gestión de riesgos técnicos. La elección de una versión de plataforma con un soporte extendido, proporciona una base estable para el desarrollo, reduce la frecuencia de migraciones obligatorias y asegura la recepción de actualizaciones críticas de seguridad y estabilidad durante un período prolongado.
.NET 10 es una versión de Soporte a Largo Plazo (LTS). Esto significa que tiene 3 años de soporte desde su lanzamiento oficial ayer, es decir, hasta el 10 de noviembre de 2028.
En cuanto a las versiones anteriores, debes tener en cuenta que tanto .NET 8 (LTS) como .NET 9 (STS) llegarán al final de su ciclo de soporte en la misma fecha: el 10 de noviembre de 2026. En 1 año. Esta fecha crea un punto de inflexión claro para la planificación de actualizaciones.

En consecuencia, Microsoft recomienda explícitamente que todas las aplicaciones en producción se actualicen a .NET 10. Esta migración no solo te dará acceso a las nuevas capacidades del framework, sino que también es una decisión estratégica para beneficiarse de la ventana de soporte extendida, garantizando así la continuidad operativa y la seguridad a largo plazo.
En este enlace puedes consultar las políticas oficiales de soporte para .NET.
La estabilidad que ofrece el soporte LTS se complementa con las mejoras fundamentales de rendimiento que ofrece la plataforma, algo habitual en todos los lanzamientos de .NET, y de lo que vamos a hablar ahora.
2.- Mejoras fundamentales de rendimiento en el runtime de .NET 10
El rendimiento sigue siendo la gran apuesta de .NET, que va rompiendo récords en cada nueva versión anual. La versión 10 de este año presenta nuevas optimizaciones importantes en el runtime, que se traducen directamente en aplicaciones más rápidas, con menor latencia y un consumo de memoria más reducido.
Para las organizaciones, esto impacta positivamente en los costes de infraestructura en la nube (por ejemplo, menor uso de CPU/memoria en máquinas virtuales de Azure o App Services) y en el cumplimiento de los objetivos de nivel de servicio (SLO) y los acuerdos de nivel de servicio (SLA), ambos clave para la competitividad.
Las mejoras de rendimiento de .NET 10 son muchísimas (luego tienes un enlace a los detalles) pero las más importantes son quizá las siguientes:
- Mejoras en el compilador JIT: el compilador Just-In-Time (JIT) se ha afinado con optimizaciones avanzadas que incluyen una mejor capacidad de inlining (inserción de código de métodos pequeños en el método llamante), una desvirtualización de métodos más agresiva para reducir la sobrecarga de llamadas a métodos virtuales y una generación de código más eficiente para argumentos de tipo
struct.
- Aceleración por hardware: .NET 10 amplía su capacidad para aprovechar el hardware moderno. Se ha incorporado soporte para AVX10.2 en los nuevos procesadores Intel y para SVE (Scalable Vector Extension) en sistemas Arm64, lo que permite una vectorización avanzada para operaciones matemáticas y de datos intensivas. De particular importancia son las mejoras en la barrera de escritura de Arm64, que logran reducir los tiempos de pausa del Recolector de Basura (GC) entre un 8% y un 20%, mejorando la capacidad de respuesta de las aplicaciones.
- Optimización de NativeAOT: la compilación Ahead-Of-Time (AOT) nativa continúa madurando, permitiendo generar aplicaciones autocontenidas que son más pequeñas y se inician más rápido. Estas optimizaciones son cruciales para escenarios como aplicaciones con microservicios, funciones serverless y aplicaciones de cliente (y en especial en .NET MAUI), donde el tiempo de arranque y el consumo de memoria son muy importantes.
- Optimizaciones del runtime: a un nivel más profundo, el runtime se beneficia de estrategias mejoradas de inversión de bucles (loop inversion) y de un uso más eficiente de la ubicación en la pila (stack allocation). Estas técnicas reducen la presión sobre el recolector de basura y mejoran la eficiencia del código generado.
Estas optimizaciones, en la práctica significan que .NET 10 es la versión de .NET más rápida hasta la fecha, lo que no es poca cosa ya que cada año se posiciona en los primeros puestos de los benchmarks del sector.
Algunos ejemplos de mejora con componentes del propio framework:
- La serialización JSON mejora un 10 % en comparación con .NET 9, y es un 70% más rápida que la del clasico
Newtonsoft.JSON. La deserialización JSON mejoró un 8 % frente a .NET 9.
- Las APIs experimentan reducciones del tiempo de respuesta del 53 % en muchos escenarios.
- Las aplicaciones compiladas con AOT demuestran un inicio un 75 % más rápido en comparación con el JIT tradicional.
- Reducción de la utilización de la CPU de hasta un 44 % en cargas de trabajo específicas.
Si te interesa el funcionamiento interno de todo esto, el clásico artículo anual de Stephen Taub de Microsoft tiene muchísimos detalles y te encantará: Performance Improvements in .NET 10
3.- Evolución de los lenguajes: C# 14
Con .NET 10, C# 14 y F# 10 (VB.NET ya hace años que ni lo mencionan) presentan nuevas características diseñadas para aumentar la productividad, mejorar la mantenibilidad del código y permitir patrones de programación más eficientes y expresivos, facilitando la escritura de código más limpio y robusto.
Vamos a echarle un vistazo rápido a las del lenguaje más utilizado: C#.
Principales novedades de C# 14
C# 14 trae varias características nuevas interesantes, que mejoran patrones existentes y expanden las capacidades del lenguaje:
- Propiedades con respaldo de campo (
field ): esta característica simplifica drásticamente las declaraciones de propiedades que requieren lógica personalizada. En lugar de declarar un campo de respaldo explícito (el típico _myField), ahora es posible usar la palabra clave contextual field dentro de los descriptores de acceso get y set
public string Name
{
get => field;
set => field = value?.Trim() ?? string.Empty;
}
Esto reduce el código repetitivo y mejora la legibilidad.
- Miembros de extensión (propiedades y métodos): la sintaxis de los métodos de extensión ha sido modernizada y expandida. Ahora es posible agregar no solo métodos, sino también propiedades de instancia y miembros estáticos (métodos y propiedades) a tipos existentes, incluidas las interfaces. Esto aumenta enormemente la potencia de los tipos de extensión, permitiendo una integración más natural con el código existente. Nuestro tutor José María Aguilar te explica con detalle esta nueva característica en su blog: Extension members en C# 14 (.NET 10).
- Asignación condicional nula (
?.=): este nuevo operador simplifica el código de asignación que necesita comprobar la nulidad antes de actuar. Una expresión como if (user != null) { user.Profile = LoadProfile(); } ahora se puede escribir de forma concisa como user?.Profile = LoadProfile();. También funciona con arrays, por ejemplo: arr?[42] = new object();.
- Modificadores de parámetros en lambdas: las expresiones lambda ahora pueden utilizar modificadores de parámetros como
ref, in u out sin necesidad de especificar explícitamente los tipos de los parámetros. El compilador los infiere, lo que resulta en un código más limpio y conciso en escenarios de alto rendimiento.
- Otras mejoras importantes: C# 14 también incluye conversiones de primera clase para
Span<T> para un mejor rendimiento, soporte completo para propiedades y constructores parciales (útil para potenciar la eficacia de los generadores de código fuente, como los que se utilizan en el nuevo sistema de validación de Blazor y el generador de OpenAPI) y el atributo [OverloadResolutionPriority] para resolver ambigüedades en la sobrecarga de métodos.
La aplicación de estas mejoras del lenguaje y el rendimiento de la plataforma son especialmente útiles para el desarrollo de aplicaciones de inteligencia artificial, un área en la que .NET 10 se centra especialmente, por supuesto.
Aquí tienes la lista oficial de novedades que trae C# 14: Novedades de C# 14.
4.- Capacidades de Inteligencia Artificial (IA) en .NET 10

.NET 10 se quiere posicionar como una plataforma de primer nivel para el desarrollo de aplicaciones de inteligencia artificial generativa, desde la integración de modelos de lenguaje en aplicaciones existentes hasta la orquestación de sistemas complejos de múltiples agentes. La madurez del ecosistema queda demostrada por el hecho de que los productos de IA de Microsoft usados a gran escala, como Microsoft Copilot, están construidos sobre la base de .NET.
Microsoft Agent Framework
Para simplificar la creación de sistemas de IA "agénticos", .NET 10 presenta Microsoft Agent Framework. Este marco aúna los dos frameworks existentes y ya muy establecidos que tenían, Semantic Kernel y AutoGen, en un nuevo sistema unificado y más potente. Su objetivo es proporcionar los patrones y la infraestructura necesarios para construir desde un único agente inteligente hasta un sistema donde múltiples agentes colaboran para resolver problemas complejos, independizándolos además de los modelos utilizados.
Para acelerar el desarrollo, Microsoft proporciona plantillas como aiagent-webapi y una interfaz de desarrollo (Dev UI) que ofrece un entorno de pruebas basado en web para validar y visualizar el comportamiento de los agentes y sus flujos de trabajo:
Más información sobre este nuevo framework: Introducing Microsoft Agent Framework (Preview): Making AI Agents Simple for Every Developer
Abstracciones unificadas y herramientas para IA en .NET 10
Además del framework de agentes, .NET 10 refuerza su ecosistema de IA con un conjunto de abstracciones y herramientas estandarizadas:
- Microsoft.Extensions.AI: este conjunto de bibliotecas proporciona bloques de construcción unificados. Destaca la interfaz
IChatClient, una abstracción que permite a las aplicaciones interactuar con diferentes proveedores de modelos de lenguaje (como OpenAI, Azure OpenAI, modelos locales con Ollama o similares, etc.) a través de una API consistente. Esta abstracción no es meramente una conveniencia; es un elemento estratégico clave para evitar el vendor lock-in con los proveedores de modelos de IA, permitiendo a las organizaciones pivotar entre servicios sin costosos refactorings.
- Protocolo de Contexto de Modelo (MCP): MCP es el estándar de facto que define cómo los agentes de IA pueden interactuar de forma segura y estandarizada con herramientas y servicios externos, como APIs de negocio, bases de datos o sistemas de archivos. .NET 10 ofrece soporte de primera clase para MCP, permitiendo a los desarrolladores crear y publicar "servidores MCP" a través de NuGet, que exponen capacidades para que los agentes las consuman.
Estas capacidades de IA de alto nivel se integran de forma natural con los frameworks de aplicaciones incluidos en .NET, como ASP.NET Core, permitiendo la creación de aplicaciones web inteligentes.
5.- Desarrollo Web y APIs con ASP.NET Core 10
ASP.NET Core 10 continúa su evolución con un fuerte enfoque en la seguridad, la observabilidad, el rendimiento y la productividad del desarrollado:
APIs modernas y OpenAPI en .NET 10
El desarrollo de APIs RESTful es un pilar de las aplicaciones modernas, y ASP.NET Core 10 introduce mejoras importantes para simplificar este proceso y cumplir con los estándares más recientes:
- Soporte para OpenAPI 3.1: la generación de especificaciones OpenAPI ahora utiliza la versión 3.1 por defecto. Esta versión es importante porque incluye soporte completo para el último borrador de JSON Schema, lo que permite una representación más precisa y estandarizada de los tipos de datos en la documentación de la API.
- Soporte para YAML en OpenAPI: además de JSON, ahora es posible servir los documentos de especificación OpenAPI en formato YAML. YAML se prefiere muchas veces por que es mucho más fácil de leer por las personas que JSON, lo que facilita la revisión manual de la documentación de las APIs.
- Validación integrada en Minimal APIs: se ha simplificado mucho la validación de los datos de entrada en las Minimal APIs. Con solo una llamada a
AddValidation() en la configuración de servicios, el framework habilita la validación automática de parámetros de consulta, cabeceras y cuerpos de solicitud. Si la validación falla, se devuelve automáticamente una respuesta 400 Bad Request con los detalles del error.
- Eventos Enviados por el Servidor (SSE): para escenarios de comunicación en tiempo real, ASP.NET Core 10 introduce el nuevo método
TypedResults.ServerSentEvents(). Esta función facilita la transmisión de flujos de actualizaciones desde el servidor a los clientes a través de una única conexión HTTPS, una alternativa más ligera a WebSockets para comunicaciones unidireccionales.
- Integración de comentarios XML: el generador de código fuente de OpenAPI ahora utiliza automáticamente los comentarios de documentación XML del código C# para poblar las descripciones, resúmenes y otros metadatos en el documento OpenAPI generado, manteniendo la documentación de la API sincronizada con el código fuente.
Mejoras en Blazor con .NET 10
Blazor, el framework de .NET para construir interfaces de usuario web interactivas con C# y que compite con React o Angular en la creación de apps Front y Back-End, recibe importantes actualizaciones para mejorar la experiencia del desarrollador y el rendimiento de las aplicaciones:
- Persistencia del estado del componente: se introduce el atributo
[PersistentState] para persistir el estado de un componente de forma declarativa durante la fase de prerenderizado. Además, la resiliencia de los circuitos de Blazor Server se ha mejorado, persistiendo automáticamente el estado del componente antes de que un circuito sea descartado por una desconexión prolongada, evitando así la pérdida de datos del usuario.
- Rendimiento y carga: los scripts del framework de Blazor ahora se entregan como activos web estáticos precomprimidos, lo que mejora los tiempos de carga. Las aplicaciones Blazor Web App también precargan automáticamente los activos del framework para optimizar aún más la carga inicial de la página.
- Validación de formularios mejorada: se ha introducido un nuevo sistema de validación de formularios basado en generadores de código fuente. Este sistema, potenciado por el soporte mejorado de miembros parciales en C# 14, es compatible con la compilación Ahead-Of-Time (AOT) y valida automáticamente objetos anidados y elementos de colecciones, proporcionando una validación más completa y de mayor rendimiento.
- Nuevas capacidades de interoperabilidad con JavaScript: La interoperabilidad con JavaScript se ha vuelto más potente. Ahora es posible crear instancias de objetos JS, llamar a sus constructores y modificar sus propiedades directamente desde el código .NET, tanto de forma síncrona como asíncrona.
Seguridad y observabilidad de aplicaciones Web
Dos áreas críticas para cualquier aplicación en producción reciben una atención especial en esta versión:
- Soporte para Passkeys (WebAuthn): ASP.NET Core Identity ahora incluye soporte nativo para la autenticación sin contraseña mediante passkeys, basada en los estándares WebAuthn y FIDO2. La plantilla de proyecto Blazor Web App incorpora esta funcionalidad de serie, permitiendo a los usuarios registrarse e iniciar sesión utilizando métodos biométricos o llaves de seguridad. Algo superútil en aplicaciones de última generación.
- Métricas integradas: se han añadido nuevas métricas integradas para Blazor, los subsistemas de Autenticación y Autorización, e Identity. Estos datos facilitan la monitorización del rendimiento y el comportamiento de la aplicación utilizando herramientas de observabilidad estándar.
Aquí te dejamos un artículo más detallado de todas las novedades de ASP.NET Core 10: Novedades de ASP.NET Core en .NET 10.
La construcción de aplicaciones web y de APIs robustas depende fundamentalmente de un acceso a datos eficiente y flexible, un área que Entity Framework Core 10 aborda con mejoras significativas.
6.- Acceso a datos avanzado con Entity Framework Core 10
EF Core 10 evoluciona para dar soporte a necesidades de datos más modernas (spoiler: vectores en SQL Server). O sea, como casi todo, enfocándose en las aplicaciones de inteligencia artificial y el manejo de datos semiestructurados. Al mismo tiempo, continúa refinando sus capacidades fundamentales de modelado y consulta para mejorar la productividad y el rendimiento.
Capacidades para IA y datos no estructurados en tecnologías de acceso a datos de Microsoft
- Búsqueda de vectores (SQL Server y Azure SQL): EF Core 10 ofrece soporte completo para el nuevo tipo de datos
vector y la función VECTOR_DISTANCE() que vienen con SQL Server 2025 y Azure SQL. Integrar las capacidades de búsqueda vectorial directamente en la capa de base de datos simplifica las arquitecturas y reduce la latencia al eliminar la necesidad de una base de datos vectorial separada y dedicada en muchos escenarios comunes de RAG y búsqueda semántica.
- Tipo de dato JSON nativo (SQL Server y Azure SQL): con la introducción del tipo de dato
json nativo en SQL Server 2025, EF Core 10 lo utiliza automáticamente para el mapeo de propiedades JSON. Esto proporciona un rendimiento superior y mayor seguridad en comparación con el almacenamiento en columnas de texto (nvarchar), y mantiene un soporte completo para consultas LINQ que se traducen a funciones SQL JSON optimizadas.
- Búsqueda híbrida y de texto completo (Azure Cosmos DB): para Azure Cosmos DB, EF Core 10 añade soporte para funciones de búsqueda de texto completo como
FullTextContains. Además, introduce la función RRF (Reciprocal Rank Fusion) para combinar los resultados de la búsqueda vectorial y la búsqueda de texto completo, una técnica clave para mejorar la precisión en escenarios de búsqueda híbrida para IA.
Mejoras en modelado y consultas LINQ
Más allá de las nuevas capacidades, EF Core 10 introduce mejoras en lo ya existente para simplificar el código y optimizar las consultas:
- Tipos complejos: los tipos complejos se han mejorado para permitir un modelado de datos similar a documentos. Se pueden mapear a columnas JSON o dividir en múltiples columnas en la misma tabla (table splitting). Las novedades incluyen el soporte para tipos complejos opcionales (anulables) y la capacidad de usar
structs de .NET en lugar de clases, lo que se alinea mejor con su semántica de tipos por valor.
- Operadores
LeftJoin y RightJoin en LINQ: el propio framework .NET 10 introduce soporte de primera clase para los operadores LeftJoin y RightJoin directamente en LINQ. Así que EF Core 10 aprovecha este añadido para traducir estas operaciones al SQL correspondiente de manera nativa. Esto simplifica muchísimo la escritura de consultas de tipo outer join, que anteriormente requerían construcciones LINQ complejas y poco intuitivas.
- Actualizaciones en lote (batch) para Columnas JSON (
ExecuteUpdate): ahora es posible actualizar propiedades específicas dentro de una columna JSON de forma eficiente utilizando ExecuteUpdate. Esta operación se traduce en una actualización en el lado del servidor sin necesidad de cargar todo el documento JSON en la memoria de la aplicación, lo que es ideal para operaciones masivas.
- Filtros de consulta con nombre: se introduce la capacidad de definir múltiples filtros de consulta globales por tipo de entidad, cada uno con un nombre único. Esto permite a los desarrolladores habilitar selectivamente filtros específicos en consultas individuales, ofreciendo un control más granular para escenarios como la multitenencia (varios entornos en una misma aplicación) y el borrado lógico (se marcan los registros como borrados pero no se borran, por lo que puedes luego filtrar automáticamente para que se vean solo lo no borrados).
Puedes consultar todas las novedades de EF Core 10 en la documentación oficial: Novedades de EF Core 10.
7.- Desarrollo multiplataforma nativo con .NET MAUI 10
En .NET 10, .NET MAUI se consolida como una plataforma madura para la creación de aplicaciones nativas para iOS, Android, macOS y Windows desde una única base de código C# y XAML. La evolución en esta versión se centra en la mejora de la calidad del producto (llevan años en esto), la fiabilidad de los controles y la optimización de la experiencia del desarrollador.
Te resumimos las mejoras más importantes en la siguiente tabla:
| Área de Mejora |
Descripción de la Novedad |
| Actualizaciones de plataformas |
Se ha añadido soporte para las versiones más recientes de los SDK de las plataformas nativas, incluyendo Android 16 (API 36 & 36.1) e iOS 26.0, asegurando la compatibilidad con las últimas características del sistema operativo. |
| Mejoras en controles |
El control MediaPicker ahora soporta la selección múltiple de archivos y la compresión de imágenes directamente desde la API. HybridWebView se ha mejorado para permitir la intercepción de solicitudes web, lo que posibilita modificar cabeceras o servir respuestas locales. |
| Evolución de XAML |
Se introducen dos avances clave: un nuevo generador de código fuente de XAML que mejora significativamente los tiempos de compilación y la introducción de espacios de nombres XML implícitos y globales, que simplifican el código XAML al reducir la necesidad de declaraciones repetitivas. |
| Diagnóstico y rendimiento |
Se ha añadido un sistema de monitorización de rendimiento del diseño a través de ActivitySource y métricas. Esto permite a los desarrolladores diagnosticar cuellos de botella en la interfaz de usuario y optimizar la renderización de las vistas. |
Estas mejoras en los frameworks de aplicación se ven complementadas por una evolución paralela en las herramientas que soportan todo el ciclo de vida del desarrollo de software.
Aquí tienes un documento oficial detallado de todas las novedades de .NET MAUI 10: Novedades de .NET MAUI para .NET 10.
8.- Nuevas herramientas de desarrollo y productividad del ecosistema .NET

.NET 10, en combinación con Visual Studio 2026 y las herramientas del SDK, proporcionan un entorno de desarrollo integrado que es más inteligente, más rápido y más productivo.
Veamos las principales novedades:
Visual Studio 2026 y GitHub Copilot
Visual Studio 2026, el IDE insignia para el desarrollo en .NET, integra más a fondo las capacidades de IA de GitHub Copilot tratando de ponerse a la par con su hermano (cada vez menos) pequeño, Visual Studio Code. Esta versión de Visual Studio se centra en 3 cosas fundamentalmente:
- Velocidad: desde siempre se le ha achacado al entorno una lentitud y unos consumos de memoria y procesador excesivos. Lo han mejorado mucho y ahora vuela comparado con antes. Lo vas a notar nada ñas arrancarlo: la ventana con la lista de proyectos recientes aparece casi de inmediato. Y cuando abras un proyecto grande verás que carga a toda velocidad. Un gusto, sobre todo si acostumbras a trabajar con VS Code, mucho más ligero.
- Desarrollo asistido por IA: mete, desde pequeñas pero útiles cosas como el "Adaptive paste" (pegado adaptativo), que ajusta el código copiado al contexto del archivo de destino, hasta el "Profiler Copilot Agent", un asistente que analiza el uso de CPU y memoria y sugiere optimizaciones, o un agente de depuración que puede diagnosticar y proponer correcciones para pruebas unitarias fallidas. Por supuesto la estrella es GitHub Copilot, que se pone a la par con VS Code y permite trabajar verdaderamente asistido por un agente IA.
- Mejoras de productividad: el editor de Markdown ahora puede renderizar diagramas en formato Mermaid directamente, facilitando la visualización de flujos y arquitecturas. Además, Visual Studio 2026 introduce soporte para el nuevo formato de solución SLNX, diseñado para ser más legible y fácil de gestionar en sistemas de control de versiones.
Nuestro tutor José María Aguilar te cuenta las grandes ventajas de este nuevo formato de soluciones en este post: .SLNX: El nuevo formato de soluciones .NET.
Mejoras en el SDK de .NET y la Experiencia de CLI
El SDK de .NET 10 mete varias cosas que mejoran el trabajo desde la línea de comandos (CLI) y que abren nuevos casos de uso para C# (spoiler: como lenguaje de script).
- Aplicaciones basadas en ficheros (
File-Based Apps): una de las características más destacadas es la capacidad de ejecutar un único archivo de código C# (.cs) directamente con el comando dotnet run miapp.cs. Esto reduce la barrera de entrada para C# en pipelines de DevOps y automatización, tradicionalmente dominados por lenguajes de scripting, y habilita una estrategia de lenguaje unificada en todo el stack de software de una organización, desde aplicaciones a gran escala hasta simples scripts de compilación. Qué demonios: lo puedes usar para crear con C# pequeñas utilidades para ejecutar desde línea de comandos y olvidarte del tostón que es escribir código para PowerShell (y no digamos para bash o archivos .bat).
- Nuevo formato de solución (SLNX): ya lo hemos visto en el apartado anterior. Está soportado también por el CLI. Nos facilita mucho la vida para verlo entendiéndolo y para editarlo.
- Auditoría de seguridad mejorada: la seguridad de la cadena de suministro de software es una prioridad. Solo hay que ver las debacles que han ocurrido últimamente con npm y otros. En .NET 10, la auditoría de dependencias transitivas en NuGet está habilitada por defecto al restaurar paquetes. Además, se introduce el nuevo comando
dotnet package update --vulnerable, que actualiza automáticamente los paquetes con vulnerabilidades conocidas a la primera versión segura disponible.
9.- Consideraciones para la Migración
Planificar una migración a .NET 10 requiere una revisión cuidadosa de los breaking changes. Estos cambios, aunque necesarios para la evolución de la plataforma, pueden ser incompatibles a nivel binario, de código fuente o de comportamiento, y pueden requerir ajustes en las aplicaciones existentes. A continuación, te resumimos algunas de las categorías de cambios más relevantes para un arquitecto:
- ASP.NET Core: se han introducido cambios de comportamiento importantes, como la desactivación por defecto de las redirecciones de inicio de sesión para los endpoints de las APIs, que ahora devolverán un código de estado 401. Además, componentes antiguos como
WebHostBuilder han sido marcados como obsoletos para fomentar el uso del modelo de hosting genérico, y conviene ir migrándolos manualmente.
- Bibliotecas principales de .NET: el comportamiento en la resolución de sobrecargas de métodos en C# 14 ha cambiado cuando se involucran parámetros de tipo
span, lo que podría afectar a código que depende del comportamiento anterior. Además, la librería System.Linq.AsyncEnumerable, antes un paquete NuGet separado, ahora está incluida en las bibliotecas principales, lo que podría causar conflictos de nombres si se referenciaba explícitamente (si la usas, deberás quitarla de la lista de paquetes en los proyectos que migres).
- Criptografía: los requisitos de la plataforma subyacente han sido actualizados. En sistemas Linux, ahora se requiere OpenSSL 1.1.1 o una versión posterior. En macOS, las primitivas criptográficas que dependen directamente de OpenSSL ya no son compatibles, en favor de las APIs nativas del sistema operativo.
- SDK y MSBuild: el comportamiento de las herramientas de la CLI se ha actualizado. Por ejemplo, el comando
dotnet new sln ahora crea un archivo en el nuevo formato SLNX por defecto. Y, como hemos visto antes, el comando dotnet restore ahora realiza una auditoría de seguridad de los paquetes transitivos de forma predeterminada, lo que podría introducir nuevas advertencias en los procesos de compilación. Esto es especialmente importante en los procesos automatizados de CI/CD.
- Contenedores: las imágenes de contenedor oficiales de .NET ahora utilizan Ubuntu como sistema operativo base por defecto, un cambio a tener en cuenta para los pipelines de CI/CD que dependen de una distribución específica.
Puedes ver una lista detallada de todos los cambio s incompatibles hacia atrás de .NET 10, aquí: Breaking changes in .NET 10.
Conclusión: valor estratégico de la adopción de .NET 10
.NET 10 no es solo una actualización incremental, sino que lo posicionan como un lanzamiento estratégico para los desafíos tecnológicos de la próxima década (palabras mayores al ritmo que cambia todo). Según Microsoft, representa una inversión en modernización, eficiencia y productividad y el valor estratégico de migrar a .NET 10 se puede resumir en dos áreas clave.
En primer lugar, con la integración de la inteligencia artificial a través del Microsoft Agent Framework, el soporte para algoritmos de criptografía postcuántica (como ML-DSA y ML-KEM) y su estatus como versión de Soporte a Largo Plazo (LTS), .NET 10 es una base estable y segura sobre la cual construir aplicaciones robustas y preparadas para lo que viene.
Por otro lado, las últimas mejoras en el rendimiento del runtime, la aceleración por hardware y las optimizaciones del compilador se traducen directamente en aplicaciones más rápidas y con un menor consumo de recursos, lo cual tiene un impacto directo en los menores costes operativos de la infraestructura en la nube (sea Azure o cualquier otra).
En definitiva, la adopción de .NET 10 es una gran base con soporte a largo plazo en la que desarrollar nuestras aplicaciones, tanto existentes, con una fácil migración desde versiones anteriores de .NET, como futuras, gracias a la inclusión de tecnologias de última generación.
Esperamos que este repaso te haya resultado interesante para conocer todo lo importante que trae y animarte a realizar la migración cuanto antes.