.NET 9: qué aportó y por qué migrar a .NET 10
.NET 9 introdujo mejoras relevantes en runtime, C# 13, ASP.NET Core, tooling e integración de IA, pero en 2026 la decisión ya...

.NET Core fue la línea multiplataforma y open source que evolucionó hacia el .NET moderno a partir de .NET 5. Entender ese cambio de nombre, su relación con .NET Framework y qué revisar en proyectos existentes permite interpretar mejor documentación, dependencias y decisiones actuales de modernización.
Tabla de contenidos
.NET Core fue la línea multiplataforma y open source de Microsoft que evolucionó hasta convertirse en el .NET moderno. A partir de .NET 5 desapareció “Core” del nombre principal de la plataforma, aunque el término sigue apareciendo en proyectos, dependencias, documentación y búsquedas técnicas.
Por eso, encontrar una referencia a .NET Core no significa necesariamente estar ante una tecnología distinta del .NET actual. Lo importante es identificar qué versión utiliza el proyecto, qué target framework declara y qué dependencias condicionan su compatibilidad o mantenimiento.
También conviene distinguirlo de .NET Framework, que continúa existiendo como una implementación diferente y vinculada a Windows. Entender esta relación permite interpretar mejor proyectos antiguos, documentación técnica y decisiones de modernización sin mezclar nombres que pertenecen a etapas distintas del ecosistema.
.NET Core nació como una implementación multiplataforma y open source de .NET, diferenciada de .NET Framework. Permitió ejecutar aplicaciones en Windows, Linux y macOS y sentó la base de la plataforma que Microsoft continúa desarrollando actualmente.
La principal fuente de confusión es el nombre. Después de .NET Core 3.1 no apareció .NET Core 4: Microsoft pasó directamente a .NET 5 y eliminó “Core” de la denominación principal. El cambio reflejaba la continuidad de esa línea tecnológica, no el nacimiento de una plataforma completamente distinta.
¿.NET Core sigue existiendo? Como nombre principal, no. Las versiones que utilizaron oficialmente esa denominación llegaron hasta .NET Core 3.1. A partir de .NET 5, la evolución de esa línea pasó a llamarse simplemente .NET.
Esto explica por qué conceptos, herramientas y arquitecturas asociadas originalmente a .NET Core siguen formando parte del desarrollo actual. También es habitual encontrar Core en documentación histórica, repositorios antiguos o conversaciones técnicas aunque el proyecto utilice una versión moderna de .NET.
Sin embargo, el cambio de nombre no se aplicó a todo el ecosistema. ASP.NET Core y Entity Framework Core conservaron Core en su denominación para distinguirse de tecnologías anteriores con nombres similares. Encontrar esa palabra en una dependencia no significa, por tanto, que el proyecto utilice una versión antigua de .NET Core.
.NET Core 3.1 fue la última versión que utilizó Core en el nombre de la plataforma. Microsoft explica en la documentación de .NET 5 que esta release fue la siguiente versión principal después de 3.1 y que se descartó tanto Core como la numeración 4.x para evitar confusiones con .NET Framework 4.x.
Desde entonces, la numeración continúa como .NET 5, .NET 6, .NET 7 y versiones posteriores. Para un desarrollador, la consecuencia práctica es que el cambio fue nominal: muchos conceptos y APIs de .NET Core continuaron evolucionando dentro de .NET.
Esta continuidad tampoco significa que .NET Framework se transformara en .NET moderno. Sigue siendo una implementación distinta del ecosistema, con su propio ciclo de mantenimiento y una fuerte vinculación con Windows. Esa diferencia es la que conviene entender antes de evaluar un proyecto existente o plantear su modernización.
Los nombres pueden parecer etapas sucesivas de una misma tecnología, pero no conviene interpretarlos así. .NET Core y .NET moderno pertenecen a una misma línea de evolución, mientras que .NET Framework continúa como una implementación diferenciada con su propio ciclo de mantenimiento.
La elección tampoco se reduce a “nuevo frente a antiguo”. Un proyecto puede depender de tecnologías específicas de Windows, bibliotecas disponibles solo para .NET Framework o decisiones arquitectónicas que condicionen una modernización. Por eso, distinguir las plataformas sirve para entender tanto proyectos nuevos como aplicaciones que siguen en producción.
¿.NET Core y .NET Framework son lo mismo? No. Microsoft identifica actualmente .NET, antes denominado .NET Core, como su implementación principal. Es open source y está diseñada para múltiples plataformas y cargas de trabajo. .NET Framework, en cambio, es la implementación original y está vinculada a Windows.
| Plataforma | Qué representa | Plataformas | Situación actual |
|---|---|---|---|
| .NET Core | Nombre utilizado hasta .NET Core 3.1 | Windows, Linux y macOS | Línea histórica que continuó como .NET |
| .NET moderno | Evolución de .NET Core desde .NET 5 | Multiplataforma, con cargas también específicas de cada sistema | Implementación principal y en desarrollo activo |
| .NET Framework | Implementación original de .NET | Windows | Continúa soportado y en mantenimiento |
Que .NET moderno sea multiplataforma no significa que todas sus aplicaciones puedan ejecutarse en cualquier sistema. Tecnologías como Windows Forms y WPF también están disponibles en .NET actual, pero siguen siendo específicas de Windows. Del mismo modo, una aplicación puede utilizar APIs o dependencias que limiten las plataformas compatibles.
.NET Framework tampoco debe interpretarse como una plataforma abandonada. Microsoft mantiene versiones soportadas y no exige migrar una aplicación únicamente por utilizar .NET Framework. Para nuevo desarrollo, sin embargo, recomienda utilizar .NET.
Cuando aparece .NET Core en un repositorio, una oferta técnica o una documentación antigua, el nombre por sí solo no basta para identificar la situación real del proyecto. Conviene comprobar la versión o el target framework antes de decidir si estamos ante una aplicación histórica o ante una referencia informal al .NET moderno.
También hay que separar el nombre de la plataforma del de sus tecnologías. Un proyecto que utiliza ASP.NET Core sobre una versión moderna de .NET no está ejecutándose sobre una versión antigua de .NET Core simplemente porque el framework web conserve Core en su nombre.
Esta distinción resulta especialmente importante al evaluar aplicaciones legacy. Pasar de .NET Framework a .NET moderno puede implicar revisar APIs, formato de proyecto, bibliotecas de terceros o tecnologías que no tengan equivalente directo.
Por eso, antes de plantear una actualización conviene identificar la plataforma y versión que utiliza la aplicación. A partir de ahí pueden evaluarse soporte, dependencias y compatibilidad sin tomar decisiones basadas únicamente en que el proyecto incluya las palabras .NET, Core o Framework.
Cuando un proyecto utiliza una versión antigua de .NET Core o .NET Framework, el nombre de la plataforma no basta para decidir qué hacer con él. Antes de plantear una actualización conviene identificar qué ejecuta la aplicación, qué dependencias necesita y hasta qué punto esas piezas siguen teniendo soporte.
También hay que separar mantenimiento y modernización. Un proyecto puede seguir funcionando correctamente y, aun así, acumular riesgo por versiones sin soporte, bibliotecas abandonadas o tecnologías difíciles de evolucionar. La decisión debe partir del estado técnico real, no de que aparezca .NET Core o .NET Framework en el repositorio.
El primer dato que conviene revisar es el target framework declarado por el proyecto. Permite saber para qué implementación y versión fue compilada la aplicación y orienta la revisión posterior de SDK, paquetes y compatibilidad.
A partir de ahí, un diagnóstico básico debería comprobar:
Todas las versiones que conservaron la denominación .NET Core, incluida .NET Core 3.1, están actualmente fuera de soporte. Encontrar uno de estos targets debería activar una revisión de mantenimiento, dependencias y posible ruta de modernización.
El soporte cambia con el ciclo de releases. A septiembre de 2026, la política oficial de soporte de .NET sitúa .NET 10 como LTS activa hasta noviembre de 2028, mientras .NET 8 y .NET 9 finalizan soporte el 10 de noviembre de 2026. Si un proyecto sigue en esta última versión, la pieza sobre novedades de .NET 9 permite contextualizar qué aportó esa release y su siguiente paso dentro del ciclo de soporte.
¿Hay que migrar siempre una aplicación antigua? No necesariamente. Mantenerla temporalmente puede ser razonable si cumple sus requisitos operativos, sus dependencias siguen siendo viables y el coste de cambiar supera el riesgo de permanecer como está.
La modernización gana peso cuando aparecen versiones sin soporte, dependencias obsoletas, dificultades para desplegar o mantener el sistema, o limitaciones que frenan nuevas necesidades. En proyectos .NET Framework, la complejidad depende además del modelo de aplicación y de las tecnologías utilizadas.
Antes de decidir, conviene seguir una secuencia práctica:
Para proyectos basados ya en .NET moderno, actualizar entre versiones suele concentrarse en target framework, dependencias y breaking changes. Pasar desde .NET Framework puede exigir además revisar el modelo de aplicación y tecnologías sin equivalencia directa. Esa diferencia debe marcar la estrategia de modernización.
Entender qué es .NET Core hoy exige separar el nombre histórico de la plataforma actual. La línea que llegó hasta .NET Core 3.1 continuó como .NET a partir de .NET 5, mientras .NET Framework mantiene una evolución y un ciclo de mantenimiento propios.
Para interpretar un proyecto existente no basta con fijarse en que aparezcan las palabras Core, .NET o Framework. Conviene revisar target framework, runtime, dependencias, soporte y tecnologías específicas antes de decidir si mantener la aplicación, actualizarla o plantear una modernización más profunda.
Esa lectura evita decisiones basadas solo en nomenclatura o antigüedad y permite valorar cada proyecto por su situación técnica real, su horizonte de soporte y el coste de evolucionarlo.
También te puede interesar
.NET 9 introdujo mejoras relevantes en runtime, C# 13, ASP.NET Core, tooling e integración de IA, pero en 2026 la decisión ya...

.NET 10 combina un ciclo LTS con mejoras en runtime, C# 14, ASP.NET Core, tooling y bibliotecas. Para los equipos que mantienen...

Con este curso vas a aprender a diseñar e implementar soluciones software mantenibles y testeables, con separación de...
