Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

19 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 27 de mayo de 2025
Desarrolladores estirando .NET

Cuando usamos tipos enumerados en C#, muchas veces buscamos seguridad. Los valores de un enum son constantes conocidas de antemano y se comprueban en tiempo de compilación, lo que evita asignaciones inválidas que podrían derivar en errores en tiempo de ejecución.

También, el hecho de poder acceder a los valores del enum utilizando nombres o identificadores descriptivos da lugar a un código más legible y fácil de mantener. Y encima, las ayudas para el autocompletado y descubrimiento de valores posibles que nos proporcionan los IDEs modernos nos ayudan a ser más productivos. Todo son ventajas 🙂

Sin embargo, los enum de C# sólo permiten que sus valores subyacentes sean numéricos ( byte, sbyte, short, ushort, int -el tipo por defecto-, uint, long o ulong). Esto puede suponer una limitación en casos en los que nos vendría bien disfrutar de todos los beneficios anteriores, pero usando valores string... es decir, deberíamos poder definir un tipo que pueda contener únicamente un conjunto de cadenas de texto predefinidas.

Algunos lenguajes como TypeScript, Python o Swift soportan de forma nativa la creación de enumerados de texto; en cambio, en C# no tenemos esta posibilidad. Pero bueno, no todo está perdido... gracias a la flexibilidad del lenguaje, podemos conseguir algo bastante parecido 😉

lunes, 26 de mayo de 2025
Desarrollador sobrepasado por la cantidad de novedades de la semana

Como todos los lunes, aquí tenemos ya los enlaces a contenidos interesantes que he ido recopilando durante la semana pasada, donde la IA ha sido la gran protagonista.

La verdad es que la semana ha sido una locura, tanto que no he podido seguir el ritmo de los contenidos que han ido publicándose, sobre todo debido a la celebración del evento de I/O 2025 de Google y Build 2025 de Microsoft. A estos adicionalmente se han sumado otros lanzamientos y novedades interesantes, así como los posts técnicos que nos encontramos habitualmente en estas recopilaciones. El resultado: más de 80 enlaces a contenidos que no os podéis perder 😊

Con tanto material es difícil destacar algo concreto, pero creo que como mínimo deberíais echarle un vistazo a los siguientes links:

Aparte, ya se ha lanzado la preview de la nueva y controvertida versión del compilador nativo de TypeScript basado en Go.

También me ha llamado la atención el salto a open source de varios productos, como la extensión Github Copilot Chat para Visual Studio Code, el Windows subsystem for Linux, y Edit, un editor de línea de comandos que no conocía.

Por último, un toque de nostalgia noventera con el artículo de Antonio Vallejo sobre el botón turbo de los PCs de la época, que en realidad no aceleraba el PC sino todo lo contrario. Todo un alarde de creatividad marketiniana.

El resto de enlaces, a continuación.

Por si te lo perdiste...

.NET

martes, 20 de mayo de 2025
Operador con camiseta de C# y pelazo a lo Elvis manipulando una máquina compleja

El operador "?." (también conocido como safe navigation operator, null-conditional operator, optional chaining operator o incluso Elvis operator) se introdujo en C# 6.0, en el año 2015. Este conocido operador simplifica el acceso a miembros de un objeto que ocasionalmente podría ser nulo, evitando la necesidad de realizar comprobaciones explícitas de nulidad.

var friend = GetFriendOrNull(1);
var name = friend?.Name; // Si friend es nulo, name será nulo, pero no explotará

Sin embargo, si queremos acceder a una propiedad para asignarle un valor, el operador "?." no es suficiente. Por ejemplo, si queremos asignar un valor a la propiedad Age de un objeto friend sospechoso de ser nulo, debemos comprobarlo manualmente antes de realizar la asignación:

var friend = GetFriendOrNull(1);
if (friend != null)
{
    friend.Age = 23;
}

Esto cambiará con C# 14, cuyo lanzamiento está previsto para noviembre de 2025, acompañando a .NET 10, que extenderá el uso de este operador también a la asignación de valores a miembros, completando así su funcionalidad.

Se trata de una característica muy esperada por la comunidad desde hace años, ya que simplificará y hará el código más legible. En este artículo, exploraremos cómo funcionará esta nueva característica y qué implicaciones tendrá en nuestro código.

lunes, 19 de mayo de 2025
50 millones de desarrolladores usando Visual Studio & Code

Tenemos una buena cosecha esta semana 🙂 Enlaces a unos 60 contenidos para estar al día sobre .NET, ASPNET Core, Blazor, buenas prácticas, IA, programación web y otros temas interesantes.

Y como es habitual, vamos a destacar algunos de ellos.

En primer lugar, José Manuel Alarcón nos recuerda que en unos días entrará en vigor la Ley de Accesibilidad Europea (EAA), que es de obligado cumplimiento y afecta a todos los sitios web y aplicaciones.

Braulio Díez nos habla de mock servers y cómo pueden ayudarnos a separar el desarrollo de backend y frontend en proyectos de una cierta complejidad.

Por último, dos de Microsoft. Por un lado, Amanda Silver celebra haber alcanzado 50 millones de desarrolladores usando Visual Studio y Visual Studio Code.

Y por otro, la llegada de .NET Preview 4, con novedades en librerías, runtime, ASP.NET Core, Blazor, MAUI, WPF y Entity Framework Core y otros. Podéis ver los detalles aquí.

Por si te lo perdiste...

.NET

martes, 13 de mayo de 2025
¡Variable not found cumple 19 años!

Hace unos días, Variable Not Found cumplió 19 años desde su post inaugural, en aquel lejano mayo de 2006. Durante todo este tiempo, ha sido un compañero de viaje con el que he ido compartiendo mis reflexiones, descubrimientos y aprendizaje sobre el mundo del desarrollo de software, con la ilusión de que pudieran ser útiles a alguien más.

No puedo decir que no me haya costado trabajo, y sobre todo, mucho tiempo, pero creo que ha sido recompensado con creces, tanto a nivel personal como profesional. Cada post ha sido una oportunidad para aprender algo nuevo y de profundizar en temas que me han interesado. He tenido la fortuna de sentirme parte de una comunidad increíble, en la que he podido conocer gente que comparte mis intereses e inquietudes, y en algunos casos, llegar a forjar amistades con personas brillantes, a las que admiro y respeto profundamente. Y sin duda, la visibilidad que me ha dado el blog me ha permitido acceder a oportunidades y proyectos a los que probablemente no habría llegado de otra manera.

Todo esto ha sido posible gracias a vosotros, queridas amigas y amigos del blog, porque sin vuestro apoyo este viaje no habría tenido sentido. Mil gracias por estar siempre ahí 🥰

Y para celebrarlo, como es habitual, vamos a hacer un pequeño repaso de lo que ha sido la temporada 2024-2025 en el blog en términos de visitas y visitantes, un ejercicio de transparencia que he realizado en cada aniversario desde hace más de quince años. En este caso, ya os adelanto que la desastrosa tendencia que veníamos observando en los últimos años incluso se ha acentuado, así que la cosa no va bien 😢

lunes, 12 de mayo de 2025
Personas que no saben si entrar o no a una escuela de programación

Aquí tenéis los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)

Muy destacable esta semana el análisis de José Manuel Alarcón sobre el impacto de la IA en nuestra profesión. Un artículo que no te puedes perder si te preocupa aquello de que la "IA va a acabar con los programadores" o "no te hace falta saber programación, porque la IA lo hará todo por ti".

Interesante también la reflexión de Derek Comartin sobre el uso de APIs para CRUD y los problemas de diseño que introduce en nuestras aplicaciones.

Y Raymond Chen sigue trayéndonos curiosidades sobre Windows y sus mecanismos internos. En esta ocasión, nos cuenta los motivos de que el portapapeles de Windows no almacene correctamente los cambios rápidos en su contenido.

El resto, a continuación.

Por si te lo perdiste...

.NET