Compartir a través de


Novedades de .NET 9

Obtenga información sobre las nuevas características de .NET 9 y busque vínculos a documentación adicional.

.NET 9, el sucesor de .NET 8, tiene un enfoque especial en el rendimiento y las aplicaciones nativas de la nube. Se admitirá durante 18 meses como versión de soporte técnico estándar (STS). Puede descargar .NET 9 aquí.

Novedad de .NET 9: el equipo de ingeniería publica actualizaciones en versión preliminar de .NET 9 en GitHub Discussions. Este es un excelente lugar para hacer preguntas y proporcionar comentarios sobre la versión.

Entorno de ejecución de .NET

El entorno de ejecución de .NET 9 incluye un nuevo modelo de atributos para los modificadores de características con compatibilidad con el recorte. Los nuevos atributos permiten definir conmutadores de funciones que las bibliotecas pueden usar para conmutar áreas de funcionalidad.

La recolección de elementos no utilizados incluye una característica de adaptación dinámica al tamaño de la aplicación que se usa de forma predeterminada en lugar de la recolección de elementos no utilizados del servidor.

El entorno de ejecución también incluye numerosas mejoras de rendimiento, incluidas las optimizaciones de bucle, la inserción en línea, la vectorización de Arm64 y la generación de código.

Para obtener más información, consulte Novedades del entorno de ejecución de .NET 9.

Bibliotecas de .NET

System.Text.Json añade compatibilidad con anotaciones de tipos de referencia anulables y la exportación de esquemas JSON a partir de tipos. Agrega nuevas opciones que permiten personalizar la sangría de JSON escrito y leer varios valores JSON de nivel raíz desde una sola secuencia.

En LINQ, los nuevos métodos CountBy y AggregateBy permiten agregar el estado por clave sin necesidad de asignar agrupaciones intermedias a través de GroupBy.

Para los tipos de colección, el tipo de System.Collections.Generic.PriorityQueue<TElement,TPriority> incluye un nuevo método Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) que puede usar para actualizar la prioridad de un elemento de la cola.

Para la criptografía, .NET 9 agrega un nuevo método hash de captura única en el tipo CryptographicOperations. También agrega nuevas clases que usan el algoritmo KMAC.

Para la reflexión, el nuevo tipo PersistedAssemblyBuilder le permite guardar un ensamblado emitido. Esta nueva clase también incluye compatibilidad con PDB, lo que significa que puede emitir información de símbolos y usarla para depurar un ensamblado generado.

La clase TimeSpan incluye nuevos métodos de From* que permiten crear un objeto de TimeSpan a partir de un int (en lugar de un double). Estos métodos ayudan a evitar errores causados por una imprecisión inherente en los cálculos de punto flotante.

Para obtener más información, vea Novedades de las bibliotecas de .NET 9.

SDK de .NET

El SDK de .NET 9 presenta conjuntos de cargas de trabajo, donde todas sus cargas de trabajo permanecen en una única versión específica hasta que se actualizan explícitamente. En el caso de las herramientas, una nueva opción para dotnet tool install permite a los usuarios (en lugar de autores de herramientas) decidir si una herramienta puede ejecutarse en una versión más reciente del entorno de ejecución de .NET que la versión a la que se dirige la herramienta. Además:

  • Las pruebas unitarias tienen una mejor integración de MSBuild que permite ejecutar pruebas en paralelo.
  • Las auditorías de seguridad de NuGet se ejecutan en referencias de paquetes directas y transitivas, de forma predeterminada.
  • El registrador de terminal está habilitado de forma predeterminada y también ha mejorado la facilidad de uso. Por ejemplo, el recuento total de fallos y advertencias ahora se resume al final de un proceso de construcción.
  • Hay disponibles nuevos analizadores de scripts de MSBuild ("comprobaciones de compilación").
  • El SDK puede detectar y ajustar si las versiones no coinciden entre el SDK de .NET y MSBuild.
  • El comando dotnet workload history muestra el historial de instalaciones y modificaciones de la carga de trabajo para la instalación actual del SDK de .NET.

Para obtener más información, consulte Novedades del SDK para .NET 9.

Bloques de creación de inteligencia artificial

.NET 9 presenta una capa unificada de abstracciones de C# a través de los paquetes Microsoft.Extensions.AI y Microsoft.Extensions.VectorData. Estas abstracciones facilitan la interacción con los servicios de inteligencia artificial, incluidos los modelos de lenguaje pequeño y grande (SLA y LLM), las incrustaciones, los almacenes de vectores y el middleware.

.NET 9 también incluye nuevos tipos de tensor que amplían las funcionalidades de inteligencia artificial. TensorPrimitives y el nuevo tipo de Tensor<T> expanden las funcionalidades de inteligencia artificial habilitando una codificación, manipulación y cálculo eficaces de datos multidimensionales. Puede encontrar estos tipos en la versión más reciente del paquete System.Numerics.Tensors.

TensorPrimitives

  • El ámbito del método ha sido ampliado: ha aumentado de 40 a casi 200 sobrecargas, ahora incluye operaciones numéricas similares a Math, MathFy INumber<T>, pero para intervalos de valores.
  • Mejoras de rendimiento: muchas operaciones ahora están optimizadas para SIMD para mejorar el rendimiento.
  • Sobrecargas genéricas: admite cualquier tipo T que implemente una interfaz determinada y se expande más allá de los rangos de valores flotantes en .NET.

Tensor<T>

  • Se basa en TensorPrimitives para realizar operaciones matemáticas eficaces.
  • Proporciona una interoperabilidad eficaz con bibliotecas de INTELIGENCIA ARTIFICIAL (ML.NET, TorchSharp, ONNX Runtime) con cero copias siempre que sea posible.
  • Permite una manipulación de datos fácil y eficaz con operaciones de indexación y segmentación.
  • Es experimental en .NET 9.

ML.NET

ML.NET es un marco multiplataforma de código abierto que permite la integración de modelos de aprendizaje automático personalizados en aplicaciones .NET.

ML.NET 4.0 aporta las siguientes mejoras:

  • Nuevas formas de configurar mediante programación las opciones de MLContext.
  • Cargue modelos ONNX como Stream.
  • Mejoras de DataFrame.
  • Nuevas características para los tokenizadores .
  • (Experimental) Migraciones de TorchSharp de la familia de modelos Llama y Phi.
  • (API experimental) API de canalización de CausalLM.

Para obtener más información, vea Novedades de ML.NET.

Tokenizadores

La biblioteca de Microsoft.ML.Tokenizers proporciona a los desarrolladores de .NET funcionalidades para codificar y descodificar texto en tokens. En escenarios de inteligencia artificial, esto es importante para administrar el contexto, calcular el costo y el texto de preprocesamiento al trabajar con modelos locales.

La versión más reciente presenta nuevas funcionalidades significativas para los tokenizadores:

  • Tiktoken para modelos GPT (3, 3.5, 4, 4o, o1) y Llam3
  • Llama (basado en SentencePiece) para modelos Llama y Mistral
  • CodeGen para modelos de generación de código como codegen-350M-mono
  • Phi2 (basado en CodeGen) para el modelo de Microsoft Phi2
  • WordPiece
  • Bert (basado en WordPiece) para modelos compatibles con Bert, como optimum--all-MiniLM-L6-v2

.NET Aspire

.NET Aspire es un conjunto de herramientas, plantillas y paquetes eficaces para compilar aplicaciones observables y listas para producción. La versión más reciente de .NET Aspire incluye mejoras en el panel y la administración del ciclo de vida de los recursos. También agrega nuevas integraciones y API para mayor flexibilidad durante el desarrollo. .NET Aspire 9 funciona con aplicaciones .NET 9 y .NET 8. Para obtener más información, consulte Novedades de .NET Aspire 9.

ASP.NET Core

ASP.NET aplicaciones core creadas con .NET 9 son seguras de forma predeterminada, han ampliado la compatibilidad con la compilación anticipada y han mejorado la supervisión y el seguimiento. Con las mejoras de rendimiento, verá un mayor rendimiento y un tiempo de inicio más rápido, y todo ello con menos uso de memoria. ASP.NET Core en .NET 9 incluye:

  • Control optimizado de archivos estáticos, como JavaScript y CSS, en tiempo de compilación y publicación con control automático de versiones con huellas digitales.
  • Blazor: nuevas plantillas de aplicación híbrida y web, detección del modo de representación de componentes, nueva experiencia de reconexión con la representación del servidor.
  • API: compatibilidad integrada con la generación de documentos de OpenAPI mediante Microsoft.AspNetCore.OpenAPI, compatibilidad con AOT nativa mejorada.
  • Se ha mejorado la seguridad con las nuevas API para la autenticación y autorización.
  • Configuración más sencilla del certificado de desarrollo de confianza en Linux para habilitar HTTPS durante el desarrollo.

Estas son solo algunas de las características y mejoras de .NET 9. Para obtener más información, consulte Novedades de ASP.NET Core 9.0.

.NET MAUI

El enfoque de la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) en .NET 9 es un rendimiento y una confiabilidad mejorados, así como integraciones más profundas para aplicaciones móviles y de escritorio. .NET MAUI incluye una nueva implementación más eficaz de CollectionView y CarouselView para iOS y Mac Catalyst, actualizaciones de controles existentes, nuevos eventos de ciclo de vida de aplicaciones y AOT nativo y mejoras de recorte para mejorar el tamaño y el tiempo de inicio de la aplicación. Además:

  • Hay disponible un nuevo control de escritorio TitleBar para Windows.
  • Un nuevo control de HybridWebView permite la inclusión más sencilla del contenido habilitado para JavaScript desde marcos como ReactJS, Vue.jsy Angular.
  • Entry ahora admite modos de teclado adicionales.
  • Los controladores se desconectan automáticamente de sus controles siempre que sea posible.
  • MainPage está en desuso en favor de establecer la página principal de la aplicación sobrescribiendo la clase Application.CreateWindow(IActivationState).

Para obtener más información sobre estas nuevas características y mucho más, consulte Novedades de .NET MAUI para .NET 9.

EF Core

Entity Framework Core incluye actualizaciones significativas del proveedor de bases de datos para Azure Cosmos DB para NoSQL. También incluye algunos pasos para la compilación de AOT y las consultas precompiladas, entre otras mejoras. Para más información, consulte Novedades de EF Core 9.

C# 13

C# 13 se incluye con el SDK de .NET 9 e incluye las siguientes características nuevas:

  • Colecciones de params
  • Nuevo tipo y semántica de lock
  • Nueva secuencia de escape: \e
  • Mejoras de tipo natural de grupo de métodos
  • Acceso implícito al indexador en inicializadores de objetos
  • Habilitar variables locales ref y contextos unsafe en iteradores y métodos asincrónicos
  • Habilitar tipos ref struct para implementar interfaces
  • Permitir tipos de estructura ref como argumentos para parámetros de tipo en genéricos.
  • Ahora se permiten propiedades parciales e indexadores en tipos partial.
  • La prioridad de resolución de sobrecargas permite a los autores de bibliotecas designar una sobrecarga como superior a las demás.

Además, C# 13 agrega una característica en vista previa (GB): propiedades respaldadas por field.

Para obtener más información, vea Novedades de C# 13.

F# 9

F# 9 se incluye con el SDK de .NET 9 e incluye las siguientes características nuevas:

  • Tipos de referencia anulables
  • Propiedades .Is* de uniones discriminadas
  • Los patrones activos parciales pueden devolver bool en lugar de la opción de unidad
  • Preferir métodos de extensión a propiedades intrínsecas cuando se proporcionan argumentos
  • Expresiones de cálculo con cuerpo vacío
  • Las directivas hash pueden tomar argumentos que no son de cadena
  • Directiva #help ampliada en fsi para mostrar la documentación en el bucle de lectura-evaluación-impresión (REPL)
  • Permitir que #nowarn admitan el prefijo FS en códigos de error para deshabilitar las advertencias
  • Advertencia sobre el atributo TailCall en funciones no recursivas o valores enlazados a let
  • Aplicar destinos de atributo
  • Funciones aleatorias para colecciones
  • Compatibilidad con expresiones de colección de C# para listas y conjuntos de F#
  • Varias mejoras en la productividad, el rendimiento y las herramientas de los desarrolladores

Para obtener más información, vea Novedades de F# 9.

Windows Presentation Foundation

WPF en .NET 9 ofrece compatibilidad mejorada para desarrollar aplicaciones modernas con varias mejoras de temáticas y adicionales.

  • Compatibilidad con el tema de Windows Fluent.
  • Se ha agregado compatibilidad con temas para los modos claro y oscuro de Windows.
  • Los temas admiten ahora el color de énfasis de Windows.
  • Se ha mejorado la representación de fuentes para admitir ligaduras basadas en guiones.
  • BinaryFormatter ya no se admite.

Para obtener más información, vea Novedades de WPF para .NET 9.

Windows Forms

WinForms en .NET 9 ofrece compatibilidad con nuevos temas, mejoras para el desarrollo asincrónico, etc.

  • Form y TaskDialog admiten ShowDialogAsync ahora. (Característica experimental)
  • BinaryFormatter ya no se admite.
  • Compatibilidad experimental para representar la aplicación en modo oscuro, como admite Windows.
  • FolderBrowserDialog y ToolStrip tuvieron algunas mejoras menores.
  • La biblioteca de System.Drawing ha tenido muchas mejoras, incluyendo el ajuste de efectos GDI+, la compatibilidad con ReadOnlySpan y una mejor generación de código de interoperabilidad.

Para obtener más información, consulte Novedades de Windows Forms para .NET 9.

Consulte también