La empresa Microsoft ha presentado el lanzamiento de la plataforma abierta .NET 11, creada gracias a la unificación de los productos .NET Framework, .NET Core y Mono. Con .NET 11 es posible desarrollar aplicaciones multiplataforma para navegadores, sistemas en la nube, escritorio, dispositivos IoT y plataformas móviles, utilizando bibliotecas comunes y un proceso de construcción unificado, sin depender del tipo de aplicación. Las compilaciones de .NET SDK 11, .NET Runtime 11 y ASP.NET Core Runtime 11 están formadas para Linux, macOS y Windows. .NET Desktop Runtime 11 se ofrece solo para Windows. Los avances relacionados con el proyecto se distribuyen bajo la licencia MIT.
El conjunto de .NET incluye Runtime con el compilador JIT RyuJIT, especificaciones de API, bibliotecas WPF, Windows Forms, WinUI y Entity Framework, interfaz de línea de comandos dotnet, así como herramientas para desarrollar microservicios, bibliotecas, aplicaciones de servidor, gráficas y de consola. Por separado se proporciona la pila para el desarrollo de aplicaciones web ASP.NET Core 11.0, el ORM Entity Framework Core 11.0 (los controladores están disponibles, incluyendo para SQLite y PostgreSQL), la biblioteca WPF 11 (Windows Presentation Foundation), el marco Windows Forms 11 para desarrollar GUI, la plataforma Aspire 11 para crear aplicaciones Cloud Native, el marco MAUI 11 para el desarrollo de interfaces de usuario multiplataforma, así como las versiones de los lenguajes C# 15 y F# 11. El soporte para .NET 11.0 y C# 15 está incluido en el editor de código libre Visual Studio Code.
En el lenguaje C# 15 se ha añadido la palabra clave union para declarar un tipo cuyo valor puede ser solo uno de los tipos variantes enumerados previamente. A una variable de tipo union se le pueden asignar valores de cualquiera de los tipos permitidos, y al intentar asignar un valor de un tipo no especificado en la declaración, el compilador generará un error.
Características de la nueva versión:
- public record class Cat(string Name);
public record class Dog(string Name);
public record class Bird(string Name);
public union Pet(Cat, Dog, Bird);Para las clases se ha propuesto el modificador "closed", mediante el cual se pueden crear jerarquías cerradas (closed hierarchy), en las que la herencia de la clase base con el modificador closed se permite únicamente dentro del mismo ensamblado donde se declara y en la etapa de compilación se conoce el conjunto completo de descendientes directos. Los tipos union y las jerarquías cerradas garantizan que en la construcción switch se hayan procesado todas las variantes posibles, lo que permite prescindir de la rama "default" y de la variable "_".
Для классов предложен модификатор «closed», при помощи которого можно создавать закрытые иерархии (closed hierarchy), в которых наследование от базового класса с модификатором closed допускается только внутри той сборки, где он объявлен и на этапе компиляции известен полный набор прямых потомков. Union-типы и закрытые иерархии гарантируют, что в конструкции switch обработаны все возможные варианты, что позволяет обойтись без ветки «default» и переменной «_».
En la nueva versión de C# también se ha añadido soporte para el salto de expresiones «break» y «continue» a etiquetas establecidas, así como se han ampliado las capacidades experimentales de aislamiento en bloques de código unsafe que trabajan directamente con la memoria (se ha añadido la posibilidad de aplicar unsafe a expresiones individuales).
- En F# 11 se ha reducido el consumo de memoria del compilador y se ha disminuido el número de operaciones de asignación de memoria al trabajar con colecciones de FSharp.Core. Se ha añadido la posibilidad de limitar el número de trabajos asíncronos que se ejecutan en paralelo para evitar la sobrecarga. Se ha añadido soporte preliminar para Runtime Async.
- El SDK incluye por defecto servidor MSBuild y la variante precompilada (NativeAOT) de la herramienta de línea de comandos dotnet.
Se ha reducido el tamaño de los instaladores del SDK para Linux y macOS gracias a la deduplicación de ensamblajes. - Se ha optimizado el compilador JIT, se han eliminado comprobaciones de límites y bifurcaciones redundantes, se ha mejorado la devirtualización y se ha ampliado la fusión de operaciones en constantes. En el compilador AOT se ha implementado un manejador de llamadas común, lo que ha permitido reducir el volumen del código y aumentar la capacidad de procesamiento en accesos intensivos a interfaces. Para Linux y macOS se ha implementado la conservación del seguimiento de pila y la información sobre módulos en caso de fallos.
- Se ha añadido un mecanismo experimental Runtime Async para reemplazar el código de procesamiento de operaciones async generado por el compilador con una implementación que gestiona la suspensión y reanudación de operaciones asíncronas a nivel de runtime.
- Se ha añadido una plantilla al SDK servidores MCP para la integración con herramientas y servicios de IA. Para aplicaciones que utilizan servicios de IA, se ha añadido un conjunto de abstracciones Microsoft.Extensions.AI (MEAI). Basado en estas abstracciones se ha formado
Microsoft Agent Framework (MAF), que se puede utilizar para crear agentes de IA. - En la API Process se han ampliado las capacidades para iniciar procesos con captura de sus salidas y códigos de finalización, así como el control sobre los descriptores heredados.
- En la API System.IO.Compression se ha añadido soporte para el algoritmo de compresión Zstandard.
- Se han añadido nuevos adaptadores de flujo ReadOnlyMemoryStream, WritableMemoryStream, ReadOnlySequenceStream y StringStream.
- Se ha añadido la utilidad dotnetup para la instalación y actualización del SDK y runtime.
Fuente: opennet.ru
