Cambios importantes en .NET 7

Si va a migrar una aplicación a .NET 7, 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 indica si cada cambio importante es compatible con binarios o compatible con el origen:

  • Compatible con binarios: los archivos binarios existentes se cargarán y ejecutarán correctamente sin volver a compilarse y el comportamiento en tiempo de ejecución no cambiará.
  • Compatible con el origen: el código fuente se compilará correctamente sin cambios al dirigirse al nuevo entorno de ejecución o mediante el SDK o componente nuevo.

ASP.NET Core

Título Compatibles con elementos binarios Compatibles con el origen
Las acciones del controlador de API intentan deducir parámetros de la inserción de dependencias ✔️
Precedencia de la variable de entorno con prefijo de ASPNET ✔️ ✔️
AuthenticateAsync para proveedores de autenticación remota ✔️
Autenticación en aplicaciones WebAssembly ✔️
Esquema de autenticación predeterminado ✔️
Identificadores de eventos de algunos mensajes de registro de Microsoft.AspNetCore.Mvc.Core cambiados ✔️
Puntos de conexión de archivo de reserva ✔️
IHubClients e IHubCallerClients ocultan miembros ✔️
Kestrel: Kestrel: se ha quitado el enlace HTTPS predeterminado ✔️
Microsoft.AspNetCore.Server.KestrelTransport.Libuv y libuv.dll eliminados
Microsoft.Data.SqlClient se ha actualizado a 4.0.1 ✔️
El middleware ya no se aplaza al punto de conexión con delegado de solicitud NULL ✔️
La detección de MVC de un cuerpo vacío en el enlace de modelos ha cambiado ✔️
Cambios en la API de almacenamiento en caché de salida
Los métodos del centro de conectividad de SignalR intentan resolver los parámetros a partir de la inserción de dependencias ✔️

Bibliotecas de Core .NET

Título Compatibles con elementos binarios Compatibles con el origen
Obsolescencias de API con identificador de diagnóstico predeterminado ✔️
Obsolescencias de API con identificadores de diagnóstico no predeterminados ✔️
Las API de serialización BinaryFormatter producen errores del compilador ✔️
BrotliStream ya no permite valores CompressionLevel sin definir ✔️
Proyectos de C++/CLI en Visual Studio ✔️
Cambios en las excepciones de las API de invocación de reflexión ✔️
Ensamblado recopilable en AssemblyLoadContext no recopilable ✔️
Cambio de precisión de los métodos de adición de DateTime ✔️ ✔️
Cambio de comportamiento del método Equals para NaN ✔️
Comportamiento de devolución de llamada de EventSource ✔️ ✔️
Restricción de tipo genérico en PatternContext<T>
Eliminación de la estrategia de FileStream heredada ✔️
Compatibilidad de biblioteca con marcos anteriores
Precisión máxima para cadenas de formato numérico ✔️
Patrones de regex con rangos corregidos ✔️ ✔️
SerializationFormat.Binary está obsoleto
Se ha quitado el modificador de configuración System.Drawing.Common ✔️ ✔️
Paquete de NuGet System.Runtime.CompilerServices.Unsafe ✔️ ✔️
Campos de tiempo en vínculos simbólicos ✔️
Seguimiento de entradas de caché vinculadas ✔️
Validación de CompressionLevel para BrotliStream ✔️

Configuración

Título Compatibles con elementos binarios Compatibles con el origen
Entrada System.diagnostics en app.config ✔️

Criptografía

Título Compatibles con elementos binarios Compatibles con el origen
El descifrado de EnvelopedCms no duplica el desencapsulado ✔️
Hora de comprobación dinámica de X509ChainPolicy ✔️
Análisis de nombres descriptivos con X500DistinguishedName ✔️

Implementación

Título Compatibles con elementos binarios Compatibles con el origen
Todos los ensamblados recortados de forma predeterminada ✔️
La búsqueda de varios niveles está deshabilitada ✔️
Ruta de acceso de host x86 en Windows de 64 bits ✔️ ✔️
TrimmerDefaultAction está en desuso ✔️

Entity Framework Core

Cambios importantes en EF Core 7

Extensiones

Título Compatibles con elementos binarios Compatibles con el origen
Configuración de enlace al diccionario amplía los valores ✔️ ✔️
ContentRootPath para aplicaciones iniciadas por Windows Shell ✔️
Prefijos de variables de entorno ✔️

Globalización

Título Compatibles con elementos binarios Compatibles con el origen
Las API de globalización usan bibliotecas ICU en Windows Server. ✔️

Interop

Título Compatibles con elementos binarios Compatibles con el origen
RuntimeInformation.OSArchitecture bajo emulación ✔️

.NET MAUI

Título Compatibles con elementos binarios Compatibles con el origen
Los constructores aceptan la interfaz base en lugar de un tipo concreto ✔️
Se han quitado los métodos auxiliares de dirección de flujo.
Nuevo parámetro UpdateBackground ✔️
Se ha cambiado el nombre de la propiedad ScrollToRequest.
Algunas API de Windows se han quitado.

Funciones de red

Título Compatibles con elementos binarios Compatibles con el origen
El valor predeterminado de AllowRenegotiation es false
Cargas de ping personalizadas en Linux ✔️
Los métodos Socket.End no producen excepciones ObjectDisposedException. ✔️

SDK y MSBuild

Título Compatibles con elementos binarios Compatibles con el origen
RuntimeIdentifier automático para determinados proyectos ✔️
RuntimeIdentifier automático solo para publicación
La salida de la consola de la CLI usa UTF-8
Codificación de consola no UTF-8 tras finalizar la ejecución ✔️
Serialización de MSBuild de tipos personalizados en .NET 7
Instalaciones del SDK en paralelo
Manifiestos de herramienta en la carpeta raíz ✔️ ✔️
Requisitos de versión para el SDK de .NET 7 ✔️ ✔️
dotnet test: cambiar -a a alias --arch en lugar de --test-adapter-path
dotnet test: cambiar -r a alias --runtime en lugar de --results-dir
La opción --output ya no es válida para los comandos de nivel de solución
El SDK ya no llama a ResolvePackageDependencies ✔️

Serialización

Título Compatibles con elementos binarios Compatibles con el origen
DataContractSerializer conserva el signo al deserializar -0 ✔️
Deserialización del tipo de versión con espacio en blanco inicial o final ✔️
El constructor de copia JsonSerializerOptions incluye JsonSerializerContext ✔️
Serialización polimórfica para tipos de objeto ✔️
Reserva del generador de origen System.Text.Json ✔️

Windows Forms

Título Compatibles con elementos binarios Compatibles con el origen
Obsolescencias y advertencias ✔️
Algunas API inician la excepción ArgumentNullException ✔️

XML y XSLT

Título Compatibles con elementos binarios Compatibles con el origen
XmlSecureResolver está obsoleto.

Consulte también