What’s New: NET Core 3 y C# 8

W

Luego del lanzamiento del primer y segundo Preview de  NET Core 3 y C# 8 ha habido de todo un poco, soporte para aplicaciones de escritorio usando Windows Presentation Foundation (WPF) , Windows forms y Entity Framework 6. ASP.NET Core 3 habilita desarrollo del lado de cliente con componentes de Razor. Por supuesto va a soportar C# 8 y mucho más!

Enfocado  a hacer más con patrones

Nace pattern matching permite definir funciones de macheo de parámetros y resultados, en mi artículo Dale Alas a tu código con C# doy una pequeña introducción de este tema, sin embargo C# 8 prometió incluir más patrones y así lo hizo! Como? EN C# 8 ha sido añadido patrones recursivos.

Entre ellos podemos encontrar :

  • Switch expression
  • Property patterns
  • Positional patterns

Nos concentramos en este caso en :

Switch expression

Todos hemos usado un switch statement y sin rayar en la exageración la mayor parte del tiempo los case  no hace un trabajo muy interesante. A Menudo estos producen un valor, ya sea asignando a una variable o retornando el valor directamente. Nada divertido si me preguntan.

Fue entonces cuando se ha decido crear una nueva forma de la sentencia switch.

Como vemos nada parecido a lo acostumbrado, pero listemos los cambios:

  • La palabra switch no es  “invariable” entre el valor testeado y la lista entre {….} de casos. Lo que hace que sea más fácil de distinguir visualmente la instrucción switch.
  • La palabra “case”  y  “:” han sido reemplazados con la flechita lambda => para abreviar
  • La palabra default se ha marchado y será reemplazada por _ .
  • Los cuerpos del switch son expresiones!.

 

Ahora podrá saber en qué punto del switch ocurre una excepcion de forma más acertada. y tampoco forzará a que se terminen todas las expresiones.

 

Nullable reference types

El propósito de esta función es ayudar a prevenir las inevitables excepciones de referencia que han dejado de lado la programación orientada a objetos desde hace un buen tiempo.

Cual es el propósito? Impedir que coloque null  en los tipos de referencias comunes como las tipo string, hace a estos tipos serán nonullables! de forma más sutil con advertencias en lugar de errores. En el código existente habrán nuevas advertencias( puedes agregarlas al proyecto, archivo, o source level).

En caso de que intentemos usar un referencia de nullable necesitamos checar por el null primero. El compilador analiza el flujo de tu código para ver si ese valor null puede ser posible donde planeas usarlo.

Target-typed new-expressions

En muchos casos cuando creamos un nuevo objeto, el tipo está dado por el contexto. En este caso particular, no será necesario escribir el tipo.

ya hemos visto 3 de mis características favoritas, ahora veremos que nos trae NET Core.

Let’s Go to NET CORE 3

WPF Y Windows Open Source

Windows Presentation Foundation y Windows Forms ahora pueden ser usados con NET Core. Serán llevados en un nuevo componente que es parte de la versión de SDK de Windows.

Podemos crear un nuevo proyecto Windows forms en .NET Core desde la consola.

dotnet new wpf
dotnet new winforms

Además estos proyecto es posible debuggearlos en Visual Studio 2019. Estos nuevos proyectos son básicamente lo mismo que los proyectos previos de .NET Core, con algunos elementos extras obviamente:

Si examinamos el proyecto de consola específicamente el archivo cspproj.xml notamos algunas diferencias, y similitudes. El target framework es netcoreapp3.0

Para WPF:

La propiedad <UseWPF> y en el caso de de Windowsform <UseWindowsForms> permite elegir cual de los dos frameworks se estarán utilizando.

Índices

Estamos agregando un tipo de índice, que se puede utilizar para la indexación. Puede crear uno desde un int que cuente desde el principio, o con un operador de prefijo ^ que cuente desde el final:

 

Plataformas Soportadas

NET Core 3 será soportado en las siguientes sistemas operativos:

  • Windows Client: 7, 8.1, 10 (1607+)
  • Windows Server: 2012 R2 SP1+
  • macOS: 10.12+
  • RHEL: 6+
  • Fedora: 26+
  • Ubuntu: 16.04+
  • Debian: 9+
  • SLES: 12+
  • openSUSE: 42.3+
  • Alpine: 3.8+

 

A su vez, las imágenes de Docker para .NET Core 3.0 estarán disponibles en microsoft/dotnet en Docker Hub.

Conclusiones:

Como siempre recordando que las tecnologías son herramientas que seguirán evolucionando. Subámonos al tren de NET CORE 3 y C# 8, la verdad promete.

He aquí algunos links de recursos y referencias

NET COre preview 1

C#8

Hasta la próxima amigos!!

Acerca del Autor

leslie.ramirez

Soy estudiante Ing. De tecnología de la Información y comunicación, tecnólogo superior en Desarrollo de Software. Me considero una persona innovadora y creativa, disfruto aprender cosas nuevas y desarrollar aplicaciones.

Entradas recientes

Categorías