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.
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 comportamiento : 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 |
| Middleware de encabezados reenviados omite los encabezados X-Forwarded-* de servidores proxy desconocidos | Cambio de comportamiento |
| El middleware de registro HTTP requiere AddHttpLogging() | 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
| Título | 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 (Marco de trabajo de entidades núcleo)
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 |
| FromKeyedServicesAttribute.Key puede ser null | No compatible con el origen |
| 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 |
Interoperabilidad
| 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 |
La resolución de biblioteca nativa de Linux ya no usa netcoredeps |
Cambio de comportamiento |
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 (Sistema de traducción
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 |
|---|---|
| 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 |