Compartir a través de


Cambios importantes en .NET 6

Si va a migrar una aplicación a .NET 6, 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
ActionResult<T> establece StatusCode en 200 ✔️
El método AddDataAnnotationsValidation se ha establecido como obsoleto ✔️
Se han quitado los ensamblados del marco compartido d Microsoft.AspNetCore.App ✔️
Blazor: se ha cambiado el nombre de parámetro en el método RequestImageFileAsync. ✔️
Blazor: se ha reemplazado la propiedad WebEventDescriptor.EventArgsType.
Blazor: interoperabilidad de matriz de bytes ✔️
Changed MessagePack library in @microsoft/signalr-protocol-msgpack ✔️
La propiedad ClientCertificate ya no desencadena la renegociación de HttpSys ✔️
Metadatos de EndpointName no establecidos automáticamente ✔️
Identidad: se ha cambiado la versión de Bootstrap predeterminada de la interfaz de usuario
Kestrel: atributos de mensaje de registro modificados ✔️
División de Microsoft.AspNetCore.Http.Features ✔️
Middleware: El middleware de redireccionamiento de HTTPS inicia una excepción en puertos HTTPS ambiguos ✔️
Middleware: nueva sobrecarga de uso ✔️
Cambios mínimos de nombre de API en RC 1
Cambios mínimos de nombre de API en RC 2
MVC no almacena en búfer los tipos IAsyncEnumerable al usar System.Text.Json ✔️
Las anotaciones en los tipos de referencia que aceptan valores NULL han cambiado. ✔️
API obsoletas y quitadas ✔️
La propiedad PreserveCompilationContext no está configurada de forma predeterminada ✔️
Razor: el compilador ya no genera un ensamblado de Vistas ✔️
Razor: cambios de identificador de registro ✔️
Razor: RazorAPI de Engine marcadas como obsoletas ✔️
SignalR: el cliente de Java se ha actualizado a RxJava3 ✔️
Se validan los métodos TryParse y BindAsync

Contenedores

Título Compatibles con elementos binarios Compatibles con el origen
Formato de registrador de consola predeterminado en imágenes de contenedor ✔️

Para obtener información sobre otros cambios importantes en los contenedores de .NET 6, vea Notas de la versión de los contenedores de .NET 6.

Bibliotecas de Core .NET

Título Compatibles con elementos binarios Compatibles con el origen
Obsolescencias de API con identificadores de diagnóstico no predeterminados ✔️
Cambios en las anotaciones de tipos de referencia que aceptan valores NULL ✔️
Evaluación condicional de cadenas en métodos de depuración ✔️
Comportamiento de Environment.ProcessorCount en Windows ✔️
Comportamiento de devolución de llamada de EventSource ✔️ ✔️
Excepciones de File.Replace en Unix para que coincidan con Windows ✔️
FileStream bloquea archivos con un bloqueo compartido en Unix ✔️
FileStream ya no sincroniza el desplazamiento de archivo con el sistema operativo
FileStream.Position se actualiza una vez completados ReadAsync o WriteAsync
Nuevos id. de diagnóstico para API obsoletas ✔️
Nuevas sobrecargas del método System.Linq.Queryable ✔️
Versiones anteriores de un marco eliminadas de paquete ✔️
Nombres de parámetro modificados ✔️
Nombres de parámetros en tipos derivados de Stream ✔️
Lecturas parciales y de cero bytes en DeflateStream, GZipStream y CryptoStream ✔️
Establecimiento de la marca de tiempo en un archivo de solo lectura en Windows ✔️
Precisión del análisis de formato numérico estándar ✔️
Miembros abstractos estáticos en interfaces ✔️
Sobrecargas de StringBuilder.Append y orden de evaluación ✔️
Las API de nombre seguro inician PlatformNotSupportedException ✔️
System.Drawing.Common solo se admite en Windows
System.Security.SecurityContext está marcado como obsoleto ✔️
Task.FromResult puede devolver singleton ✔️
Excepciones no controladas de una instancia de BackgroundService ✔️

Criptografía

Título Compatibles con elementos binarios Compatibles con el origen
Los métodos CreateEncryptor inician una excepción para un tamaño de comentarios incorrecto ✔️

Implementación

Título Compatibles con elementos binarios Compatibles con el origen
Ruta de acceso de host x86 en Windows de 64 bits ✔️ ✔️

Entity Framework Core

Cambios importantes en EF Core 6

Extensiones

Título Compatibles con elementos binarios Compatibles con el origen
AddProvider comprueba si hay proveedores que no son NULL ✔️
FileConfigurationProvider.Load genera una excepción InvalidDataException ✔️
Los elementos XML repetidos incluyen índice ✔️
La resolución de un ServiceProvider desechado genera una excepción ✔️

Globalización

Título Compatibles con elementos binarios Compatibles con el origen
Creación de referencia cultural y asignación de casos en el modo invariable de globalización

Interop

Título Compatibles con elementos binarios Compatibles con el origen
Miembros abstractos estáticos en interfaces ✔️

Compilador JIT

Título Compatibles con elementos binarios Compatibles con el origen
Argumentos de llamada de conversión según ECMA-335 ✔️ ✔️

Funciones de red

Título Compatibles con elementos binarios Compatibles con el origen
Se ha quitado el puerto del SPN para Kerberos y Negotiate ✔️
WebRequest, WebClient y ServicePoint están obsoletas ✔️

SDK

Título Compatibles con elementos binarios Compatibles con el origen
La opción -p para dotnet run está en desuso ✔️
Código de C# en plantillas no admitido por versiones anteriores ✔️ ✔️
Archivos EditorConfig incluidos implícitamente ✔️
Generación de apphost para macOS ✔️
Generación de un error para archivos duplicados en la salida de la publicación ✔️
GetTargetFrameworkProperties y GetNearestTargetFramework eliminados del protocolo ProjectReference ✔️
Ubicación de instalación de x64 emulado en Arm64 ✔️
MSBuild ya no admite la llamada a GetType()
.NET no se puede instalar en la ubicación personalizada ✔️ ✔️
OutputType no se establece automáticamente en WinExe ✔️
La publicación de ReadyToRun con --no-restore requiere cambios ✔️
runtimeconfig.dev.json file not generated ✔️
Advertencia de RuntimeIdentifier si no se especifica la propiedad independiente ✔️
Manifiestos de herramienta en la carpeta raíz ✔️ ✔️
Requisitos de versión para el SDK de .NET 6 ✔️ ✔️
El archivo .version incluye la versión de compilación ✔️ ✔️
Escritura de ensamblados de referencia en IntermediateOutputPath ✔️

Serialización

Título Compatibles con elementos binarios Compatibles con el origen
DataContractSerializer conserva el signo al deserializar -0 ✔️
Formato de serialización predeterminado para TimeSpan ✔️
Serialización IAsyncEnumerable ✔️
Refactorización de la API de generación de origen JSON ✔️
JsonNumberHandlingAttribute en las propiedades de colección ✔️
Nuevas sobrecargas del generador de origen JsonSerializer ✔️

Windows Forms

Título Compatibles con elementos binarios Compatibles con el origen
Las plantillas de C# usan el arranque de aplicación ✔️
Ciertas propiedades de TableLayoutSettings producen la excepción InvalidEnumArgumentException ✔️
Excepción InvalidOperationException por parte de las API relacionadas con DataGridView ✔️
Los métodos ListViewGroupCollection inician una nueva excepción InvalidOperationException ✔️
Longitud máxima de texto de NotifyIcon.Text aumentada ✔️
ScaleControl solo se llama cuando es necesario ✔️
Algunas API inician la excepción ArgumentNullException ✔️
TreeNodeCollection.Item produce una excepción si el nodo se asigna en otro lugar. ✔️

XML y XSLT

Título Compatibles con elementos binarios Compatibles con el origen
Comportamiento de XNodeReader.GetAttribute para un índice no válido ✔️

Consulte también