Introducción Recientemente, me encontraba con el método de una clase en C# dentro del cual tenía que recorrer un conjunto de registros bastante grande, y para ello, tenía un bucle foreach. El proceso dentro del bucle y de tipo batch, pasaba por diferentes estados y circunstancias que desenca...
La palabra clave contextual yield (no palabra reservada) tiene un uso y significado muy concreto en C#. Nota: puedes acceder a la lista de palabras clave contextuales de C# en este enlace El proceso de trabajo con yield es muy simple y al mismo tiempo muy beneficioso, sin embargo, es un gran des...
Quiero pensar que conoces el operador Null-Coalescing ?? y que posiblemente lo utilices en tus aplicaciones. Igualmente quiero pensar que también conoces el operador Null-Coalescing Assignment Operator ??= introducido en C# 8.0. Pues bien, vamos a repasar algunos conceptos y aplicaciones que tie...
Introducción En esta entrada voy a tratar de mostrarte cómo probar y jugar con tu servicio gRPC. Para ello, voy a utilizar BloomRPC (GUI Client for GRPC Services) desarrollado en Electron, y que está disponible para Linux, Mac y Windows. Podrás encontrar la última versión de BloomRPC aquí....
Índice general - C# 8.0 – Specification A lo largo de poco más de una decena de entradas, he estado hablando y tratando las novedades más destacables de la especificación de C# 8.0 que estará estrechamente ligada a .NET Core 3.0 que será anunciado oficialmente en unos 10 días. Todos los...
Índice general - C# 8.0 – Specification Introducción Microsoft ha extendido o añadido en C# 8.0 el control de avisos o warnings en el código con nullables. ¿Pero porqué y para qué?. ¿Era realmente necesario?. Comparándolo con lenguajes como F# que carecen de referencias null de form...
Índice general - C# 8.0 – Specification En esta ocasión, Microsoft ha introducido una forma de hacer algo que ya veníamos haciendo. Se trata de "preguntar" si un determinado valor es null o no. No es como verás a continuación un gran aporte, pero conviene que lo comentemos para que lo ten...
Índice general - C# 8.0 – Specification C# como tal, tenía la posibilidad de iterar un método y ejecutar un método como asíncrono, pero no contemplaba la posibilidad de que el método fuera asíncrono y se pueda iterar al mismo tiempo. Para lograr este propósito, Microsoft ha tenido que ...
Índice general - C# 8.0 – Specification Una de las características del lenguaje C# añadidas en la versión 7.2 tenía que ver con ref structs. El problema de las ref structs no obstante, era (y es) que no podemos implementar en ellas IDisposable, y por lo tanto, no podemos utilizar using. ...
Índice general - C# 8.0 – Specification Perteneciente a Pattern Matching, encontramos también una funcionalidad con respecto a las tuplas denominada Positional Patterns. La idea detrás de Positional Patterns es ligeramente diferente a la vez que especial. Requiere de un método Deconstruct...
Índice general - C# 8.0 – Specification Perteneciente a Pattern Matching, encontramos también una funcionalidad con respecto a las tuplas denominada Tuple Patterns. La idea detrás de Tuple Patterns es la de comparar o evaluar no un valor, sino varios valores al mismo tiempo que nos permita ...
Índice general - C# 8.0 – Specification Dentro de Pattern Matching, encontramos también una funcionalidad con respecto a las propiedades, la que se denomina Property Patterns. La idea detrás de Property Patterns es la de permitir evaluar la propiedad de un determinado objeto para devolver u...
Índice general - C# 8.0 – Specification Otra de las novedades introducidas en C# 8.0 es lo que tiene relación con Pattern Matching. Pattern Matching, tiene relación directa en cuanto a evaluar una declaración a través de patrones y en concreto con declaraciones switch. Dentro de los dife...
Índice general - C# 8.0 – Specification Otra de las características añadidas a C# 8.0 es la que denomina como Readonly Members. El objetivo principal de esta característica es la de evitar errores dentro de la lógica de nuestras aplicaciones y estructuras. Podremos indicar los miembros de...
Índice general - C# 8.0 – Specification Quizás encuentres esta nueva funcionalidad de C# 8.0 como Default Interface Methods o bien como Default Implementations in Interfaces. Ambas tienen el mismo significado, que no es otro que el asegurar o evitar breaking changes en nuestro código cuando ...
Una de las características del lenguaje C# es la posibilidad de utilizar la palabra reservada using. El principal propósito de using es el de asegurar un correcto uso de "disposar" los objetos utilizados. En operaciones de entrada/salida es muy común encontrarnos con la problemática por la c...
A partir de C# 7.0, Microsoft introdujo el soporte a funciones locales o Local Functions. El objetivo es declarar métodos privados anidados dentro de otro miembro. Para más información, te invito a leer esta información oficial de Microsoft al respecto. Un ejemplo de Local Function en C# 7....
En esta entrada, vamos a ver una de las nuevas características de C# 8.0, denominada Index and Ranges o Índices y Rangos. Antes de entrar en los ejemplos prácticos de estas nuevas características tengamos en cuenta que estas características son posibles gracias a dos nuevos operadores inclui...
En las próximas fechas, voy a tratar de escribir una serie de entradas que iré actualizando regularmente sobre C# 8.0 y sus nuevas características. A continuación detallo las entradas que voy a tratar: Index and Ranges Static Local Functions Using Declarations Default Interf...
Con la actualización de .NET Core 3.0 Preview 5, Microsoft ha englobado dentro de esta actualización la de ASP.NET Core 3 Preview 5. Una de las principales novedades incluidas en ASP.NET Core 3.0 Preview tiene relación con Json. Se ha eliminado Json.NET de ASP.NET Core y teniendo que añadir a...