Anuncio de .NET Core 3.1

Nos complace anunciar el lanzamiento de .NET Core 3.1. Realmente es solo un pequeño conjunto de correcciones y mejoras sobre .NET Core 3.0 , que lanzamos hace poco más de dos meses. La característica más importante es que .NET Core 3.1 es una versión compatible a largo plazo (LTS) y se admitirá durante tres años. Como lo hemos hecho en el pasado, queríamos tomarnos nuestro tiempo antes de lanzar el próximo lanzamiento de LTS. Los dos meses adicionales (después de .NET Core 3.0) nos permitieron seleccionar e implementar el conjunto correcto de mejoras sobre lo que ya era una base muy estable. .NET Core 3.1 ahora está listo para usarse donde sea que lo necesite su imaginación o necesidad comercial.

Puede descargar .NET Core 3.1 , para Windows, macOS y Linux:


ASP.NET Core y EF Core también se lanzarán hoy.

Visual Studio 2019 16.4 también se lanzó hoy e incluye .NET Core 3.1. Es una actualización necesaria para usar .NET Core 3.1 con Visual Studio. Para los usuarios de Visual Studio 2019, recomendamos simplemente actualizar Visual Studio a 16.4 y en lugar de descargar por separado .NET Core 3.1.

Visual Studio para Mac también admite e incluye .NET Core 3.1, en el canal de vista previa de Visual Studio para Mac 8.4. Deberá optar por el canal Vista previa para usar .NET Core 3.1.

Notas de lanzamiento:




Los cambios en .NET Core 3.1 se centraron principalmente en Blazor y Windows Desktop , las dos nuevas y grandes adiciones en .NET Core 3.0. Esto incluye soporte para C ++ / CLI, que ha sido una solicitud regular para desarrolladores dirigidos a Windows.

Antes de echar un vistazo a las novedades de .NET Core 3.1, echemos un vistazo rápido a las mejoras clave en .NET Core 3.0 , que es la mayor parte de lo que es importante tener en cuenta para .NET Core 3.1.

Resumen de las mejoras de .NET Core 3.0


Las siguientes mejoras clave se entregaron en .NET Core 3.0. Ya hemos escuchado de los desarrolladores de grandes sitios que les está funcionando muy bien.

  • .NET Core 3.0 ya está probado en batalla al estar alojado durante meses en dot.net y en Bing.com . Muchos otros equipos de Microsoft pronto implementarán grandes cargas de trabajo en .NET Core 3.1 en producción.
  • El rendimiento mejora enormemente en muchos componentes y se describe en detalle en Mejoras de rendimiento en .NET Core 3.0 y Hardware Intrinsics en .NET Core .
  • C # 8 agrega flujos asíncronos, rango / índice, más patrones y tipos de referencia anulables . Nullable le permite apuntar directamente a las fallas en el código que conducen a NullReferenceException . La capa más baja de las bibliotecas de framework ha sido anotada, para que sepa cuándo esperar null .
  • F # 4.7 se enfoca en hacer algo más fácil con expresiones de yield implícitas y algunas relajaciones de sintaxis. También incluye soporte para LangVersion , y se envía con nameof y apertura de clases estáticas en la vista previa. F # Core Library ahora también se dirige a .NET Standard 2.0. Puede leer más en Announcing F # 4.7 .
  • .NET Standard 2.1 aumenta el conjunto de tipos que puede usar en el código que se puede usar tanto con .NET Core como con Xamarin. .NET Standard 2.1 incluye tipos desde .NET Core 2.1.
  • Las aplicaciones de escritorio de Windows ahora son compatibles con .NET Core, tanto para Windows Forms como para WPF (y de código abierto ). El diseñador de WPF es parte de Visual Studio 2019. El diseñador de Windows Forms está en versión preliminar y disponible como descarga.
  • Las aplicaciones .NET Core ahora tienen ejecutables por defecto. En versiones anteriores, las aplicaciones debían iniciarse mediante el comando dotnet myapp.dll , como dotnet myapp.dll . Las aplicaciones ahora se pueden iniciar con un ejecutable específico de la aplicación, como ./myapp o ./myapp , según el sistema operativo.
  • Se han agregado API JSON de alto rendimiento para lectores / escritores, modelos de objetos y escenarios de serialización. Estas API se SpanT desde cero en la parte superior de SpanT y usan UTF8 debajo de las cubiertas en lugar de UTF16 (como una string ). Estas API minimizan las asignaciones, lo que resulta en un rendimiento más rápido y mucho menos trabajo para el recolector de basura. Consulte Pruebe las nuevas API System.Text.Json .
  • El recolector de basura utiliza menos memoria de forma predeterminada, a menudo mucho menos. Esta mejora es muy beneficiosa para escenarios en los que muchas aplicaciones están alojadas en el mismo servidor. El recolector de basura también se ha actualizado para hacer un mejor uso de grandes cantidades de núcleos, en máquinas con> 64 núcleos. Consulte Mejorar la configuración de la CPU para GC en máquinas con> 64 CPU .
  • .NET Core se ha fortalecido para que Docker permita que las aplicaciones .NET funcionen de manera predecible y eficiente en contenedores. El recolector de basura y el grupo de subprocesos se han actualizado para que funcionen mucho mejor cuando un contenedor se ha configurado para memoria limitada o CPU. Las imágenes del acoplador de .NET Core son más pequeñas, particularmente la imagen del SDK. Consulte: Ejecución con Server GC en un escenario de contenedor pequeño Parte 0 , Ejecución con Server GC en un escenario de contenedor pequeño Parte 1 - Límite estricto para el montón GC y uso de .NET y Docker juntos - Actualización DockerCon 2019 .
  • Los chips Raspberry Pi y ARM ahora son compatibles para permitir el desarrollo de IoT, incluso con el depurador remoto de Visual Studio. Puede implementar aplicaciones que escuchen sensores e impriman mensajes o imágenes en una pantalla, todo utilizando las nuevas API GPIO. ASP.NET se puede usar para exponer datos como una API o como un sitio que permite configurar un dispositivo IoT.

Soporte de la plataforma


.NET Core 3.1 es compatible con los siguientes sistemas operativos:

  • Alpino: 3.10+
  • Debian: 9+
  • Ubuntu: 16.04+
  • Fedora: 29+
  • RHEL: 6+
  • openSUSE: 15+
  • SUSE Enterprise Linux (SLES): 12 SP2 +
  • macOS: 10.13+
  • Cliente de Windows: 7, 8.1, 10 (1607+)
  • Servidor Windows: 2012 R2 +

Nota: Windows Forms y las aplicaciones WPF solo funcionan y son compatibles con Windows.

El soporte de chip sigue:

  • x64 en Windows, macOS y Linux
  • x86 en Windows
  • ARM32 en Windows y Linux
  • ARM64 en Linux (kernel 4.14+)

Nota: Asegúrese de que las implementaciones de .NET Core 3.1 ARM64 usen la versión 4.14 del kernel de Linux o posterior. Por ejemplo, Ubuntu 18.04 cumple este requisito, pero 16.04 no.

Eliminación de controles de formularios Windows Forms


Los siguientes controles de formularios Windows Forms se han eliminado de .NET Core 3.1:

  • DataGrid
  • Barra de herramientas
  • ContextMenu
  • Menu
  • Mainmenu
  • MenuItem

Estos controles fueron reemplazados por controles más potentes en .NET Framework 2.0, en 2005. No han estado disponibles de forma predeterminada en Visual Studio Designer Toolbox durante muchos años. Como resultado, decidimos eliminar estos controles y centrarnos solo en los nuevos.

Se recomiendan los siguientes reemplazos:
DataGridDataGridViewDataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColTlesTleTles
Barra de herramientasTooltripToolBarAppearance
ToolBarButtonToolStripButtonToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign
ContextMenuContextMenuStrip
MenuToolStripDropDown, ToolstripDropDownMenuMenuItemCollection
MainmenuMenuStrip
MenuItemToolstripMenuItem
Sí, este es un cambio desafortunado. Verá saltos de compilación si está utilizando los controles que eliminamos en sus aplicaciones. Además, si abre las aplicaciones .NET Core 3.0 en las últimas versiones del diseñador de formularios .NET Core Windows Forms, verá errores si está utilizando estos controles.

Le recomendamos actualizar sus aplicaciones a .NET Core 3.1 y pasar a los controles alternativos. Reemplazar los controles es un proceso sencillo, esencialmente "buscar y reemplazar".

Primero, deberíamos haber hecho estos cambios antes de lanzar .NET Core 3.0, y nos disculpamos por eso. Tratamos de evitar cambios tardíos, y aún más por romper los cambios, y nos duele hacer esto.

A medida que avanzamos en el proyecto del diseñador de formularios Windows Forms, nos dimos cuenta de que estos controles no estaban alineados con la creación de aplicaciones modernas y nunca deberían haber sido parte del puerto .NET Core de Windows Forms. También vimos que requerirían más tiempo de nosotros para apoyar de lo que tenía sentido.

Nuestro objetivo es continuar mejorando los formularios de Windows para un DPI alto, accesibilidad y confiabilidad, y este cambio tardío fue necesario para permitirnos concentrarnos en entregar eso.

C ++ / CLI


Agregamos soporte para crear componentes C ++ / CLI (AKA "C ++ administrado") que se pueden usar con .NET Core 3.0+, en Visual Studio 2019 16.4. Debe instalar la carga de trabajo "Desarrollo de escritorio con C ++" y el componente "Soporte de C ++ / CLI" para usar C ++ / CLI.

Este componente agrega un par de plantillas que puede usar:

  • Biblioteca de clases CLR (.NET Core)
  • Proyecto vacío CLR (.NET Core)

Si no puede encontrarlos, simplemente búsquelos en el cuadro de diálogo Nuevo proyecto.

C ++ / CLI solo está habilitado en Windows. No puede usar componentes C ++ / CLI destinados a .NET Framework con .NET Core o viceversa.

Clausura


Recomendamos pasar a .NET Core 3.1 lo antes posible. Es una gran versión (en gran parte debido a 3.0) que trae mejoras a muchos aspectos de .NET Core. También es una versión de soporte a largo plazo (LTS) , y tendrá soporte durante tres años.

Actualización del ciclo de vida:

  • .NET Core 3.0 llegará al final de su vida útil tres meses después de hoy, el 3 de marzo de 2020.
  • .NET Core 2.2 terminará cada 23 de diciembre.
  • .NET Core 2.1 será compatible hasta agosto de 2021 (también es una versión LTS).

Se recomiendan las siguientes publicaciones de .NET Core para obtener más información sobre lo que obtienes con .NET Core 3.1 y otros proyectos en los que hemos estado trabajando.

Fundamentos


Escritorio


ASP.NET


General

Source: https://habr.com/ru/post/478896/


All Articles