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, 3 de junio de 2025
Desarrolladora ejecutando un archivo .cs con el comando dotnet run

Desde hace ya bastante tiempo, el equipo de .NET está introduciendo mejoras en el SDK para simplificar algunos escenarios y facilitar el acceso a la tecnología de desarrolladores que, o bien están empezando, o bien proceden de otras plataformas.

Una de estas mejoras fueron los top level statements, que permiten escribir los entry points de nuestras aplicaciones C# sin necesidad de definir una clase o un método Main. También las directivas using globales e implícitas ayudaban a reducir el boilerplate necesario para escribir una aplicación C#.

Pero esta vez han ido más lejos 🙂

Con .NET 10, se está trabajando en eliminar toda la ceremonia necesaria para crear y ejecutar una aplicación .NET simple. De la misma forma que se puede hacer en otras plataformas y lenguajes como Node.js o Python, ahora bastará con crear un archivo con extensión .cs y ejecutar el comando dotnet run para compilar y ejecutar el archivo sobre la marcha. Es decir, pasamos de aplicaciones basadas en proyecto a aplicaciones basadas en archivos.

Pero, además, esto abre interesantes posibilidades para la creación de prototipos, pruebas rápidas o incluso para la creación de scripts que aprovechen el poder de .NET y C# sin necesidad de crear un proyecto completo.

Lo vemos en profundidad a continuación.

lunes, 2 de junio de 2025
Desarrollador sentado junto a un agente robótico que le ayuda en su trabajo

Una semana más, aquí tenéis la recopilación de los contenidos que he ido encontrando durante los últimos días. (Afortunadamente) menos enlaces que semanas anteriores, pero aún así, muchas novedades y material interesante sobre .NET, JavaScript, IA, herramientas, patrones y buenas prácticas, entre otros.

Destacamos la reflexión de José Manuel Alarcón, derivada a su vez de un artículo de Dustin Curtis, sobre el impacto del uso de la IA sobre el aprendizaje. Realmente es uno de los temas que más me preocupan sobre el uso masivo de la IA, porque, como siempre se ha dicho, "lo que no se usa, se atrofia". ¿Se va a atrofiar nuestra capacidad de razonamiento, de análisis, de crítica, de creación? ¿Vamos a perder la capacidad de pensar por nosotros mismos? ¿Podríamos quedar relegados a ser la interfaz física de una inteligencia externa que nos diga qué hacer en cada momento? Bueno, esperemos que no, pero debemos estar atentos.

Desde CampusMVP nos llega una alerta, especialmente importante si trabajamos con sitios web y aplicaciones que usan certificados HTTPS: todos caducarán cada 47 días. Nos toca revisar nuestros procesos de renovación y automatizarlos al máximo, tanto por seguridad como por comodidad.

Eladio Rincón actualiza su benchmark de generación de SQL a partir de lenguaje natural usando LLMs.

Interesante también la visión de Microsoft sobre el futuro del proceso de desarrollo de aplicaciones, donde colaboraremos con agentes IA en todas las fases del ciclo de vida: conceptualización, prototipado, generación de código, tests, mejoras, despliegue, monitorización, etc.

Angular 20 ya está aquí: estabilización de APIs, nuevas herramientas de depuración, mejoras en comprobación de tipos, literales en plantillas, server-side y más.

El resto, a continuación.

Por si te lo perdiste...

.NET

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