Anuncio de .NET 8 Preview 5
Tags: dotnet, dotnet8
Published: 2023-06-16 18:21:40

En esta entrada hablaremos sobre .NET 8 Preview 5, en la que se resaltan diversas mejoras y características introducidas en este lanzamiento. Continuando con la tradición de lanzamientos mensuales, se espera la inclusión de muchas más funcionalidades en futuras versiones. Se destaca especialmente la atención brindada a los usuarios de .NET 6 y 7, ya que se ha trabajado en facilitar el proceso de actualización hacia esta nueva versión.

Los usuarios interesados pueden [descargar .NET 8 Preview 5](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) para los sistemas operativos Linux, macOS y Windows. Algo importante de resaltar es que ya se encuentran disponibles las [imágenes de contenedores](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md) para esta nueva versión preliminar.

Durante el evento de [Microsoft Build 2023](https://news.microsoft.com/build-2023/), según [Jiachen Jiang](https://devblogs.microsoft.com/dotnet/author/jiacjian) Product Manager, .NET Data Access/Entity Framework, su éxito en gran medida fue gracias a la participación de entusiastas desarrolladores de .NET. también se aprovecho para que el equipo de .NET presentara sesiones donde se discutieron las características más emocionantes de .NET 8 y se respondieron preguntas de los asistentes.

A continuación mencionamos algunas de las nuevas características que considero importantes y están presentes en esta versión preliminar:

**SDK: mejoras en las API de métricas**

La versión preliminar 5 trae una serie de mejoras y actualizaciones a las API de métricas que cubren casos de uso adicionales:

**API de métricas compatibles con inyección de dependencia (DI)**

El equipo de desarrollo de .NET 8 ha presentado la nueva interfaz IMeterFactory, la cual puede registrarse en contenedores DI y usarse para crear objetos Meter de manera aislada. Un ejemplo de su implementación es:
`// El servicio es DI IServiceCollection
// Registre IMeterFactory en el contenedor DI utilizando la implementación predeterminada de la fábrica de medidores.
servicios.AddMetrics();`

Con el siguiente ejemplo de implementación, los Consumers ahora pueden crear un Meter Factory para usarlo y crear fácilmente un nuevo objeto Meter.

`IMeterFactory meterFactory = serviceProvider.GetRequiredService<IMeterFactory>();
MeterOptions options = new MeterOptions("MeterName")
{
    Version = "version",
};
Meter meter = meterFactory.Create(options);`

**Habilitación de la creación de Meter e instrumentos con etiquetas**

Los Meters e instrumentos también se pueden crear con etiquetas de par clave-valor. Esta función permite a los agregadores de medidas de métricas publicadas, diferenciar los valores agregados en función de estas etiquetas.

`MeterOptions options = new MeterOptions("name")
{
  Version = "version",
  // Agregue estas etiquetas al Meter que ha creado.
  Tags = new TagList() { { "MeterKey1", "MeterValue1" }, { "MeterKey2", "MeterValue2" } }
};
Meter meter = meterFactory.Create(options);
Instrument instrument = meter.CreateCounter<int>("counter", null, null, new TagList() { { "counterKey1", "counterValue1" } });
instrument. Add(1);`

**SDK: ¡Source Link es parte del SDK de .NET!**

Source Link es un sistema agnóstico de lenguaje y control de fuente que proporciona una experiencia de depuración de código fuente de primera clase para los binarios.

Source Link ahora está integrado en el SDK de .NET para mejorar la experiencia de los desarrolladores al inspeccionar paquetes NuGet vinculados al código fuente. Este cambio permitirá que más paquetes incluyan esta información de forma predeterminada. Source Link es un sistema agnóstico de lenguaje y control de fuente que proporciona una depuración de código fuente de alta calidad para binarios.

Es respaldado por Microsoft y utilizado por bibliotecas como .NET Core y Roslyn. Visual Studio y otros editores admiten la lectura de información de Source Link desde símbolos durante la depuración, lo que permite descargar y mostrar el código fuente específico del commit correspondiente.

La implementación de Source Link incluye proveedores para git, GitHub, GitLab, Azure Repositories y BitBucket, hay más proveedores disponibles en NuGet. 

Si quieres conocer un poco más sobre esta salida de .NET 8 preview 5 puedes visitar [mi artículo original](https://yovadeleon.dev/anuncio-de-net-8-preview-5/).