Iniciar sesión
Registrarse
He olvidado mi contraseña
Filtrando por 'c#'

[NOTA: Este artículo asume que todo el código que se presenta estará contenido en proyectos que tienen activadas las referencias anulables. Cómo activar las referencias anulables para un proyecto de C# y Visual Studio 2019 se describe aquí]. En la entrada anterior hablamos del llamado null-for...

Enviado por Octavio Hernandez
LEER MÁS
c# .NET

Adiciones recientes a LINQ

“I have to admit it's getting better A little better all the time...” The Beatles, “Getting Better” (1967) “If I ever lose my faith in you There'll be nothing left for me to do...” Sting, “If I Ever Lose My Faith in You” (1993) Después de bastante tiempo (una década, para ser má...

Enviado por Octavio Hernandez
LEER MÁS

“Time keeps flowing like a river...” The Alan Parsons Project, “Time” (1981) Ante todo, mis mayores deseos de que este 2021 sea mucho mejor para todos los lectores que el recién terminado 2020. El tiempo sigue fluyendo (como un río hacia el mar, dijo Alan Parsons), y hace tanto que no es...

Enviado por Octavio Hernandez
LEER MÁS

Introducción Los verbos más habituales a la hora de trabajar con una Web API suelen ser GET, PUT y POST. Y en menor medida PATCH. PUT y PATCH se utilizan para actualizar recursos existentes, pero la diferencia entre PUT y PATCH, es que PUT actualiza, o mejor dicho reemplaza, un recurso existe...

Enviado por jorge
LEER MÁS

Para ejecutar los ejemplos de código que indico en esta entrada, he utilizado .NET 5 (para soportar C# 9.0), y puedes hacer uso del SDK de .NET 5, Visual Studio Code, Visual Studio 2019 o bien, sharplab.io Si utilizas este último, recuerda eliminar el Console.ReadKey(); de los ejemplos de cód...

Enviado por jorge
LEER MÁS
c# Patterns

Mediator Pattern en C#

Introducción El Patrón Mediador o Mediator Pattern es un Behavioral Pattern o Patrón de Comportamiento que permite la comunicación de varios objetos entre sí, sin que ninguno de esos objetos tenga que conocer la estructura de los otros. Como mediador o coordinador, es el encargado de maneja...

Enviado por jorge
LEER MÁS

“I know you're here but you're not really there...” Kansas, “The Absence of Presence” (2020) A lo largo de múltiples entradas anteriores hemos venido describiendo las nuevas características que se incluyeron en la versión 8.0 del lenguaje C#, y creo que terminamos a tiempo, ahora que se ...

Enviado por Octavio Hernandez
LEER MÁS

Introducción Voy a empezar la entrada describiendo una situación teórica que nos ayudará a comprender mejor el patrón sobre el que voy a hablar en esta entrada. Imaginemos que ponemos a varias personas en fila. Esas personas forman parte del sistema o procedimiento. La responsabilidad de ca...

Enviado por jorge
LEER MÁS

Introducción Trabajar con un IDE o entorno productivo como Visual Studio 2019 es muy gratificante. Sin embargo, cuando Microsoft realiza cambios, puede ser estresante. Uno de esos cambios tiene que ver con la combinación de teclas que usábamos para duplicar una línea de código en C#. En Vi...

Enviado por jorge
LEER MÁS

Introducción Cuando trabajamos con objetos en cualquier lenguaje de programación, tendemos a trabajar con ellos, realizar operaciones con o sobre ellos, modificar sus datos, etc. Hace unos años publiqué una entrada sobre la inmutabilidad de objetos y sus propiedades en C#. En aquella entrada...

Enviado por jorge
LEER MÁS

El pasado fin de semana estaba empezando a escribir este artículo al mismo tiempo que miraba las noticias, que últimamente no traen nada bueno. Ahora que se me van acabando las novedades recientes de C# de las que no he hablado todavía, y que no me atrevo a decir nada sobre aquella de la que no m...

Enviado por Octavio Hernandez
LEER MÁS

You can find the original (Spanish) version of this post here. “Button up your overcoat When the wind is free Take good care of yourself You belong to me!” Frank Sinatra, “Pick Yourself Up” In the very first place, I would like to wish all my readers that the perfidious COVID-19 leaves yo...

Enviado por Octavio Hernandez
LEER MÁS

“Button up your overcoat When the wind is free Take good care of yourself You belong to me!” Frank Sinatra, “Pick Yourself Up” Ante todo, quiero desearle a todos mis lectores que el pérfido COVID-19 pase de largo sin tocarles, y exhortarlos a que se cuiden y cuiden a los suyos: ¡hay much...

Enviado por Octavio Hernandez
LEER MÁS

Introducción En esta entrada, voy a explicar cómo crear un Servicio de Windows con .NET Core 3.1. Para ello, podríamos utilizar una plantilla de Visual Studio 2019 que nos da casi todo hecho, pero voy a hacerlo paso a paso de manera tradicional, a través de una aplicación de consola.  ...

Enviado por jorge
LEER MÁS

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...

Enviado por jorge
LEER MÁS

Hace un par de años, en un artículo publicado en los tiempos de C# 7.x, presentamos los conceptos fundamentales en relación con el emparejamiento de patrones (pattern matching), característica que recién entonces se incorporaba a C# luego de su probado éxito en diferentes lenguajes de program...

Enviado por Octavio Hernandez
LEER MÁS

Introducción Dentro del ecosistema de los diferentes lenguajes de programación, tenemos la posibilidad de encontrar diferentes convenciones de codificación. Sobre ello escribí una entrada el año pasado por si quieres leer algo al respecto (La importancia de las convenciones de codificación:...

Enviado por jorge
LEER MÁS

Introducción En una entrada anterior, veíamos de forma general algunos detalles con respecto al nuevo namespace System.Text.Json incorporado en .NET Core 3.x. En esta ocasión, vamos a ver de forma práctica algunas de sus aplicaciones generales. Agregando la referencia al namespace Lo prim...

Enviado por jorge
LEER MÁS

Introducción Una de las mejoras incorporadas a .NET Core 3.0 ha sido el namespace System.Text.Json. Este namespace tiene como objetivo principal, unificar y simplificar las tareas y acciones que sobre un documento JSON (JavaScript Object Notation), necesitamos realizar permitiéndonos romper co...

Enviado por jorge
LEER MÁS

Antes que nada, aprovecho para felicitar al lector por la llegada del nuevo año. ¡Le deseo muchas cosas buenas en 2020! Me permito esta vez alterar lo que sería un orden más natural de presentación de las nuevas características añadidas a C# 8.0 y saltar directamente a una de las más avanza...

Enviado por Octavio Hernandez
LEER MÁS
1 2 3 10