Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La compatibilidad es un objetivo importante de cada versión de .NET Framework. La compatibilidad garantiza que cada versión sea una adición, por lo que las versiones anteriores seguirán funcionando. Por otro lado, los cambios en la funcionalidad anterior (por ejemplo, para mejorar el rendimiento, solucionar problemas de seguridad o corregir errores) pueden provocar problemas de compatibilidad en el código existente o en las aplicaciones existentes que se ejecutan en una versión posterior.
Cada aplicación tiene como destino una versión específica de .NET Framework mediante:
- Definición de una plataforma de destino en Visual Studio.
- Especificar la plataforma de destino en un archivo de proyecto.
- Aplicando un TargetFrameworkAttribute al código fuente.
Al migrar de una versión de .NET Framework a otra, hay dos tipos de cambios que se deben tener en cuenta:
Cambios en el runtime
Los problemas en tiempo de ejecución son los que surgen cuando se coloca un nuevo entorno de ejecución en una máquina y cambia el comportamiento de una aplicación. Al ejecutarse en una versión más reciente que la seleccionada como destino, .NET Framework usa un comportamiento anómalo para imitar la versión de destino anterior. La aplicación se ejecuta en la versión más reciente, pero actúa como si se ejecutara en la versión anterior. Muchos de los problemas de compatibilidad entre versiones de .NET Framework se mitigan a través de este peculiar modelo. Por ejemplo, si se compiló un binario para .NET Framework 4.0, pero se ejecuta en un equipo con .NET Framework 4.5 o posterior, se ejecuta en modo de compatibilidad de .NET Framework 4.0. Esto significa que muchos de los cambios de la versión posterior no afectan al binario.
La versión de .NET Framework que tiene como destino una aplicación viene determinada por la versión de destino del ensamblado de entrada para el dominio de aplicación en el que se ejecuta el código. Todos los ensamblados adicionales cargados en ese dominio de aplicación tienen como destino esa versión. Por ejemplo, en el caso de un archivo ejecutable, la versión que el ejecutable tiene como destino es el modo de compatibilidad en el que se ejecutan todos los ensamblados de ese dominio de aplicación.
Cambios de redestinación
Los cambios de redestinación son los que surgen cuando se vuelve a compilar un ensamblado para destinarlo a una versión más reciente. Destinarlo a una versión más reciente significa que el ensamblado participa en las características nuevas así como en los problemas de compatibilidad potenciales de las características antiguas.
Clasificación de impacto
En los artículos que describen los cambios en tiempo de ejecución y de redestinación, por ejemplo, Los cambios de redestinación para la migración a .NET Framework 4.8.x, los elementos individuales se clasifican según su impacto esperado como se indica a continuación:
principal
Un cambio significativo que afecta a un gran número de aplicaciones o que requiere una modificación sustancial del código.
menores
Un cambio que afecta a un pequeño número de aplicaciones o que requiere una modificación menor del código.
Caso límite
Un cambio que afecta a las aplicaciones en escenarios muy específicos que no son comunes.
Transparente
Un cambio que no tiene ningún efecto notable en el desarrollador o usuario de la aplicación. La aplicación no debe requerir modificaciones debido a este cambio.