En la conferencia de .NET conf  2019 el 23 de septiembre, Microsoft anunció el hecho importante de que .NET 5 tendrá una biblioteca de clase base que contiene API para crear cualquier tipo de aplicación, un verdadero alejamiento del enfoque del pasado exclusivo de Windows. Se incluyen herramientas de desarrollo de componentes. Todas las cargas de trabajo .NET, como siempre lo han hecho, son compatibles con marcos de aplicaciones, incluido el desarrollo web multiplataforma con ASP.NET , iOS y desarrollo móvil Android con Xamarin, Windows Desktop e IoT multiplataforma.

Además del lanzamiento de .NET Core 3.0 lanzado con excelentes características, vale la pena mencionar que el próximo lanzamiento (también conocido como vNext) será .NET 5.0. Si bien habrá una versión de actualización de .NET Core 3.1 (programada para noviembre de 2019), la próxima actualización de la versión completa de .NET Core será .NET 5.0. Como puede ver, “Core” se eliminará del nombre porque .NET 5 producirá un solo tiempo de ejecución y un marco que se puede usar en cualquier lugar.

.NET 5.0 tomará las capacidades de .NET Core, .NET Framework, Xamarin y Mono y las combinará en un único código basado que los desarrolladores pueden usar para construir sus aplicaciones. Esta versión fusionará la experiencia del desarrollador para que sea la misma, independientemente del tipo de aplicación que se esté creando. Esto se está haciendo agregando soporte a miles de API de .NET Framework a la plataforma para cerrar la brecha en las diferencias de características entre .NET Core y .NET Framework; incluyendo Windows Forms, WPF y Entity Framework 6.

 

Microsoft dijo que .NET 5 proporcionará modelos de compilación Just-in-Time (JIT) y Ahead-of-Time (AOT) para admitir múltiples escenarios de cómputo y dispositivos. JIT tiene un mejor rendimiento para cargas de trabajo de servidor y escritorio, así como entornos de desarrollo. AOT tiene un mejor inicio y una huella pequeña, y se requiere para dispositivos móviles e IoT.

.NET 5 también ofrecerá una cadena de herramientas unificada compatible con los nuevos tipos de proyectos SDK, así como un modelo de implementación flexible (EXE independientes y autónomos), y continuará con el alto rendimiento de .NET Core para cargas de trabajo en el servidor y en la nube.

Aquí hay datos técnicos más importantes sobre la próxima versión de la plataforma, que se lanzará a principios de 2020.

Soporte de escritorio de Windows con WPF y Windows Forms

  • .NET Core 3.0 ahora admite aplicaciones de escritorio de Windows creadas con WPF y Windows Forms. Los desarrolladores de escritorio de Windows ahora pueden aprovechar las características de la plataforma .NET Core, incluidas las implementaciones de marcos flexibles (como elf o de lado a lado), un mejor rendimiento en tiempo de ejecución para ciertas clases de API (como E / S y redes), así como todas las nuevas funciones de lenguaje en C # 8.
  • Además de aprovechar lo mejor que ofrece .NET, los desarrolladores pueden aprovechar más fácilmente las capacidades que ofrece Windows 10. Los desarrolladores de escritorio .NET Core pueden usar la tecnología de empaquetado MSIX para una implementación de aplicaciones optimizada. Los usuarios también pueden agregar fácilmente API de plataforma de Windows 10 a través de NuGet para agregar experiencias modernas a las aplicaciones de escritorio .NET existentes. Los usuarios pueden incluso actualizar la interfaz de usuario de una aplicación con las islas XAML .

Desarrollo web Full Stack C # con Blazor

  • ASP.NET Core en .NET Core 3.0 ahora incluye la capacidad de construir aplicaciones web de pila completa con C # usando Blazor. Blazor se basa en la sintaxis de Razor y C # para que los usuarios no necesiten JavaScript para crear aplicaciones web de clientes. Las aplicaciones Blazor están formadas por componentes de interfaz de usuario componibles implementados utilizando la sintaxis Razor, una combinación de HTML, CSS y C #. Las aplicaciones Blazor pueden aprovechar un rico ecosistema de componentes de interfaz de usuario, incluidas las bibliotecas de componentes de interfaz de usuario Blazor líderes de la industria de Telerik , DevExpress , Syncfusion y Radzen . Las herramientas para Blazor, incluido el soporte de editor enriquecido, están disponibles tanto en Visual Studio como en Visual Studio Code.
  • .NET Core 3.0 incluye soporte para aplicaciones Blazor Server, que manejan todas las interacciones de UI del lado del cliente a través de una conexión SignalR en tiempo real. Los eventos de IU se envían al servidor, manejados por los componentes apropiados, y luego las actualizaciones de IU requeridas se aplican del lado del cliente en el navegador.Debido a que la mayor parte del procesamiento ocurre en el servidor, el tamaño de descarga de la aplicación es pequeño y se carga muy rápidamente. La integración con el servicio Azure SignalR facilita la ampliación de las aplicaciones de Blazor Server a miles de usuarios simultáneos. El soporte para las aplicaciones Blazor WebAssembly todavía está en versión preliminar y se espera que se envíe en mayo de 2020.

Nuevas mejoras en SignalR y Azure SignalR Service

  • ASP.NET SignalR simplifica el proceso de agregar funcionalidad web en tiempo real a las aplicaciones. Con el lanzamiento de .NET Core 3.0, Azure SignalR Service admite controladores de eventos OnConnected y OnDisconnected a través de Event Grid. Los clientes de SignalR ahora tienen el método AutoReconnect () para permitir la reconexión automática. Microsoft agregó soporte mejorado de políticas para que ahora los usuarios puedan controlar el nombre del método del concentrador y el acceso individual del usuario. Microsoft también agregó soporte de transmisión de cliente a servidor.

Nuevas características del lenguaje C # con C # 8

  • Con los tipos de referencia anulables, C # da un gran paso hacia la eliminación de excepciones de referencia nula como fuente de fallas del programa. El soporte para flujos asincrónicos facilita el consumo y la producción de flujos de datos en tiempo real de manera eficiente. Las expresiones de cambio y los patrones recursivos permiten una lógica condicional elegante sobre la estructura de los objetos, mientras que las expresiones de rango simplifican las operaciones de corte en matrices, cadenas y tramos.

Actualizaciones en Entity Framework Core 3.0 (GA ahora)

  • EF Core 3.0 se centra en la calidad y el rendimiento, así como en la incorporación de las nuevas características del lenguaje C # 8 y el soporte de Cosmos DB. La implementación revisada de LINQ de EF Core es más robusta que en versiones anteriores, permite traducir más patrones de consulta a SQL, genera SQL más eficiente en muchos casos comunes y evita que las consultas ineficientes no se detecten hasta que las aplicaciones entren en producción. El proveedor de Cosmos DB se basa en el nuevo Cosmos DB SDK 3.0 para ofrecer una experiencia EF familiar a los desarrolladores de .NET dirigidos a la API SQL de Cosmos DB.
  • La integración con C # 8 permite consumir los resultados de las consultas de la base de datos como flujos asincrónicos utilizando el método de espera y permite mapear automáticamente las propiedades de los tipos de referencia no anulables a las columnas de la base de datos no anulables. Las nuevas API de intercepción se pueden utilizar para observar y ampliar lo que sucede durante las operaciones de base de datos de bajo nivel, como abrir conexiones y ejecutar comandos. Un mejor soporte para la ingeniería inversa de las bases de datos existentes permite incluir vistas de bases de datos y verificar restricciones en el modelo generado.
  • Además de EF Core 3.0, la nueva versión 6.3 del producto tradicional Entity Framework hace que sea más fácil mover las aplicaciones existentes a .NET Core 3.0 y .NET Standard 2.1, sin tener que portarlas primero a EF Core.

ML.NET (Machine Learning para .NET)

  • ML.NET es un marco de aprendizaje automático gratuito, multiplataforma y de código abierto diseñado para llevar el poder de ML a las aplicaciones .NET para una variedad de escenarios, como análisis de sentimientos, predicción de precios, recomendaciones y regresiones. Con ML.NET, los usuarios pueden crear y entrenar sus propios modelos de ML personalizados que se adaptan a sus datos específicos y escenarios de dominio empresarial.
  • La última versión de ML.NET ha agregado características interesantes para los desarrolladores de .NET, como el cargador de base de datos, para que los usuarios puedan leer datos, mientras entrenan un modelo de ML, directamente desde cualquier base de datos relacional como SQL Server, Azure SQL DB o su RDBMS de elección (Oracle, PostgreSQL, SQLite, MySQL, etc.).
  • Otras inversiones actualmente en vista previa son la API de alto nivel para la Clasificación / Reconocimiento de Imágenes más la Detección de Objetos. Ambas características también serán muy fáciles de usar visualmente con Model Builder, que es una interfaz gráfica de usuario en Visual Studio actualmente proporcionada por ML.NET.
  • Debido a que ML.NET es ante todo un framework y es compatible con .NET Core o .NET Framework, los usuarios pueden ejecutar / consumir modelos de ML personalizados en cualquier aplicación .NET nueva o existente, local o en la nube.

Visual Studio 2019 Versión 16.3

  • Visual Studio 2019 versión 16.3 ya está disponible, agregando soporte para .NET Core 3.0. Puede crear aplicaciones de escritorio WPF y Windows Forms con .NET Core 3.0, junto con las aplicaciones web ASP.NET Core y Blazor, servicios gRPC y mucho más. Además, puede publicar proyectos de trabajo de .NET Core 3.0 en Azure Container Registry, DockerHub y en otros lugares. Además, v16.3 agrega soporte para aplicaciones dirigidas a .NET Framework 4.8 y aplicaciones escritas en F # 4.7. Se agregaron múltiples mejoras de productividad para los desarrolladores de .NET, entre los que se encuentran renombrar un archivo al renombrar una interfaz, enumeración o clase (Ctrl + R, R) e introducir variables locales después de escribir su inicializador. Por último, los desarrolladores móviles que usan .NET y Xamarin ahora pueden apuntar a Android Q y usar XAML Hot Reload en la vista previa.
  • La versión 16.3 también agrega mejoras para los desarrolladores de C ++, incluidos comentarios de línea conmutables, nuevas comprobaciones principales de C ++, IntelliCode activado por defecto y filtrado mejorado de la lista de miembros de IntelliSense. La ventana de inicio también tiene mejoras con búsqueda agregada en proyectos recientes, soluciones y carpetas, así como plantillas. La nueva experiencia de búsqueda en Visual Studio 2019 (Ctrl + Q) ahora también permite la búsqueda de código para proyectos C # y VB.NET. También hay mejoras para los desarrolladores de Python y TypeScript / JavaScript en esta versión.

Visual Studio para Mac

  • Visual Studio 2019 para Mac versión 8.3 es la última versión de .NET IDE de Microsoft, creada de forma nativa para macOS. En esta versión, la compañía ha centrado sus esfuerzos en cuatro áreas principales del producto, comenzando con el soporte para .NET Core 3.0 y C # 8. Microsoft también agregó mejoras significativas a los editores web para proporcionar la misma productividad que los editores en Windows.
  • La última versión de Visual Studio para Mac también brinda soporte para la administración de paquetes NuGet a nivel de solución. Con esta característica altamente solicitada, los desarrolladores ahora pueden administrar las dependencias del proyecto de manera más eficiente en un solo lugar para toda la solución. Además, Microsoft agregó la capacidad de desarrollar bibliotecas que se dirigen a varios marcos .NET, una característica importante para los autores de bibliotecas .NET.
  • La versión 8.3 también incluye varios “deleitadores” en todo el producto, como la fijación de pestañas, la selección de un navegador de destino al ejecutar un proyecto ASP.NET Core, anidar archivos relacionados en proyectos ASP.NET Core y hacer que sea más fácil comenzar con los atajos de teclado preferidos . Los desarrolladores móviles que usan .NET y Xamarin ahora pueden apuntar a Android Q y usar XAML Hot Reload en la vista previa.