Cambios importantes en .NET 8
Si va a migrar una aplicación a .NET 8, es posible que le afecten los cambios importantes que se enumeran aquí. Los cambios se agrupan por área tecnológica, como ASP.NET Core o Windows Forms.
En este artículo se clasifica cada cambio importante como no compatible con el binario, no compatible con el origen o cambio importante:
No compatible con el binario: cuando se ejecuta en el entorno de ejecución o componente nuevos, los archivos binarios existentes pueden enfrentarse a un cambio importante en el comportamiento, como un error al cargar o ejecutar, y, de ser así, requerir la recompilación.
No compatible con el origen: cuando se vuelve a compilar con el SDK o componente nuevos o para tener como destino el entorno de ejecución nuevo, el código fuente existente puede requerir cambios de origen para compilarse correctamente.
Cambio de funcionamiento: el código y los archivos binarios existentes pueden comportarse de forma diferente en tiempo de ejecución. Si el nuevo comportamiento no es deseable, el código existente debe actualizarse y volver a compilarse.
ASP.NET Core
Título | Tipo de cambio |
---|---|
ConcurrencyLimiterMiddleware está obsoleto | No compatible con el origen |
Eliminación de convertidores personalizados para serialización | Cambio de comportamiento |
ISystemClock está obsoleto | No compatible con el origen |
API mínimas: los parámetros IFormFile requieren comprobaciones antifalsificación | Cambio de comportamiento |
El middleware de limitación de velocidad requiere AddRateLimiter | Cambio de comportamiento |
Los eventos de token de seguridad devuelven un JsonWebToken | Cambio de comportamiento |
TrimMode tiene como valor predeterminado completo los proyectos del SDK web | No compatible con el origen |
Contenedores
Title | Tipo de cambio |
---|---|
paquete "ca-certificates" quitado de las imágenes de Alpine | Binario incompatible |
Imágenes de contenedor de Debian actualizadas a Debian 12 | Cambio de comportamiento o incompatible binario |
El puerto de ASP.NET Core predeterminado ha cambiado a 8080 | Cambio de comportamiento |
paquete Kerberos quitado de imágenes Alpine y Debian | Binario incompatible |
paquete "libintl" quitado de las imágenes de Alpine | Cambio de comportamiento |
Las etiquetas de contenedor multiplataforma son solo Linux | Cambio de comportamiento |
Nuevo usuario "app" en imágenes de Linux | Cambio de comportamiento |
Bibliotecas de Core .NET
Criptografía
Título | Tipo de cambio | Inclusión |
---|---|---|
Tamaño de etiqueta de autenticación de AesGcm en macOS | Cambio de comportamiento | Versión preliminar 1 |
RSA.EncryptValue y RSA.DecryptValue están obsoletos | No compatible con el origen | Versión preliminar 1 |
Implementación
Título | Tipo de cambio |
---|---|
Determinación de los recursos específicos de RID por el host | Cambio de comportamiento o incompatible binario |
.NET Monitor solo incluye imágenes sin distribución | Cambio de comportamiento |
StripSymbols tiene true como valor predeterminado | Cambio de comportamiento |
Entity Framework Core
Cambios importantes en EF Core 8
Extensiones
Título | Tipo de cambio |
---|---|
ActivatorUtilities.CreateInstance se comporta de forma coherente | Cambio de comportamiento |
ActivatorUtilities.CreateInstance requiere un proveedor que no sea NULL | Cambio de comportamiento |
ConfigurationBinder produce un valor no coincidente | Cambio de comportamiento |
El paquete ConfigurationManager ya no hace referencia a System.Security.Permissions | No compatible con el origen |
El paquete DirectoryServices ya no hace referencia a System.Security.Permissions | No compatible con el origen |
Claves vacías agregadas al diccionario por enlazador de configuración | Cambio de comportamiento |
HostApplicationBuilderSettings.Args respetado por HostApplicationBuilder ctor | Cambio de comportamiento |
ManagementDateTimeConverter.ToDateTime devuelve una hora local | Cambio de comportamiento |
Cambio de formato System.Formats.Cbor DateTimeOffset | Cambio de comportamiento |
Globalización
Título | Tipo de cambio |
---|---|
Los convertidores de fecha y hora respetan el argumento de referencia cultural | Cambio de comportamiento |
El valor predeterminado de TwoDigitYearMax es 2049 | Cambio de comportamiento |
Interop
Título | Tipo de cambio |
---|---|
CreateObjectFlags.Unwrap solo desencapsula en la instancia de destino | Cambio de comportamiento |
Los serializadores personalizados requieren miembros adicionales | No compatible con el origen |
Se ha quitado la API IDispatchImplAttribute | Binario incompatible |
Se quitó el constructor predeterminado público implícito JSFunctionBinding | Binario incompatible |
Los tipos SafeHandle deben tener un constructor público | No compatible con el origen |
Redes
Título | Tipo de cambio |
---|---|
SendFile produce una excepción NotSupportedException en sockets sin conexión | Cambio de comportamiento |
Se compara la información de usuario en los URI mailto: |
Cambio de comportamiento |
Reflexión
Título | Tipo de cambio |
---|---|
IntPtr ya no se usa para los tipos de puntero de función | Cambio de comportamiento |
SDK
Serialización
Título | Tipo de cambio |
---|---|
BinaryFormatter deshabilitado para la mayoría de los proyectos | Cambio de comportamiento |
Los proyectos PublishedTrimmed producen un error en la serialización basada en la reflexión | Cambio de comportamiento |
El deserializador basado en la reflexión resuelve los metadatos diligentemente | Cambio de comportamiento |
Windows Forms
Título | Tipo de cambio |
---|---|
Cambios en el diseño del delimitador | Cambio de comportamiento |
Certificados comprobados antes de cargar imágenes remotas en PictureBox | Cambio de comportamiento |
DateTimePicker.Text es una cadena vacía | Cambio de comportamiento |
Se ha quitado DefaultValueAttribute de algunas propiedades | Cambio de comportamiento |
El constructor ExceptionCollection genera ArgumentException | Cambio de comportamiento |
Escalado de formularios según AutoScaleMode | Cambio de comportamiento |
El valor predeterminado de ImageList.ColorDepth es Depth32Bit | Cambio de comportamiento |
System.Windows.Extensions no hace referencia a System.Drawing.Common | No compatible con el origen |
TableLayoutStyleCollection genera ArgumentException | Cambio de comportamiento |
Los formularios de nivel superior escalan el tamaño mínimo y máximo a PPP | Cambio de comportamiento |
La obsolescencia WFDEV002 ahora es un error | No compatible con el origen |