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 ;)

20 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!
lunes, 13 de julio de 2026
Desarrollador a punto de terminar sus tareas e irse de vacaciones

La versión 7.0 final de TypeScript ya está disponible. Si has ido probando las RC, ya habrás visto que el incremento de velocidad en compilación es espectacular. Y si no lo has hecho, estás tardando en actualizar.

David Grace nos muestra cómo es posible registrar los cambios automáticamente utilizando las tablas temporales en EF Core.

Al diseñar una API, cualquier comportamiento que expongamos puede ser utilizado por los clientes, y cambiarlo puede romper sus aplicaciones. Esto se conoce como la Ley de Hyrum, y Oren Eini cuenta cómo les afectó en RavenDB.

Waldek Mastykarz nos recuerda que, cuando hablamos de modelos IA, lo último no es necesariamente lo mejor. Si los adoptamos conforme aparecen, podríamos encontrarnos con sorpresas desagradables, como incrementos de coste, pérdidas de calidad o de predictibilidad. Lo más prudente es probarlos antes en nuestros escenarios concretos, y decidir a partir de ahí.

Los agentes de Microsoft Agent Framework para .NET ya pueden utilizar skills, por lo que podemos proporcionarles conocimientos especializados que cargarán bajo demanda cuando necesiten realizar tareas específicas. Nos lo cuenta Sergey Menshykh.

El resto de enlaces a contenidos interesantes, a continuación.

Por si te lo perdiste...

.NET

lunes, 6 de julio de 2026
Hombres y robots trabajando en distintas ramas del mismo árbol sin molestarse unos a otros

Aunque siempre estuvieron ahí, la moda de los agentes IA ha vuelto a llamar al escenario a los worktrees de Git, que permiten trabajar en varias ramas al mismo tiempo sobre el mismo repositorio. En este artículo, José Manuel Alarcón nos explica cómo funcionan y cómo pueden ayudarnos en nuestro día a día.

Cuando lanzamos peticiones desde .NET, lo habitual es esperar a que la respuesta llegue completa antes de procesarla, aunque a veces, si los datos a recibir son masivos, esto no escala bien. Pero, ¿y si pudiéramos procesar los datos a medida que nos van llegando? En este artículo, Nick Cosentino nos explica cómo hacerlo con HttpClient y Server-Sent Events.

Si sigues trabajando con .NET exactamente igual a como lo hacías hace unos años, quizás te vendría bien echar un vistazo al resumen que Simon Foster ha hecho de las novedades que se han ido incorporando a .NET desde la versión 5 hasta la 10, para ver qué cosas nuevas podemos aprovechar.

El resto de enlaces a contenidos interesantes, a continuación.

Por si te lo perdiste...

.NET

lunes, 29 de junio de 2026
Teclado con teclas distintas para el salto de línea

En Blazor no existen "signals", como en Angular. Sin embargo, es posible crear algo similar, para conseguir que la UI se actualice automáticamente cuando cambian los datos. Steven Giesel nos explica cómo hacerlo.

Rick Strahl nos explica qué opciones tenemos para crear aplicaciones Windows que puedan ejecutarse tanto en modo consola como en modo GUI, y por qué ninguna de ellas es perfecta 👉 

Los caracteres de salto de línea no son simplemente a CR y LF. En este post Gérald Barré nos explica qué debemos tener en cuenta para gestionarlos correctamente en .NET.

Y por último, ¿sabías que desde la llegada de .NET 10 hace unos meses puedes ejecutar un archivo C# directamente desde la línea de comandos? Puedes crear scripts, pequeñas utilidades y ejecutarlas de forma rápida sin necesidad de crear y compilar un proyecto completo. En este post te explico cómo hacerlo.

Enlaces a más contenidos interesantes, a continuación.

Por si te lo perdiste...

.NET

martes, 23 de junio de 2026
Una máquina de café (servicio singleton) rodeada de tazas de café (servicio scoped)

Seguro que alguna vez os habéis encontrado con la necesidad de usar un servicio registrado como scoped desde el código de un servicio registrado como singleton. Un caso típico es cuando en una aplicación ASP.NET Core tenemos un servicio corriendo en segundo plano (vaya, un BackgroundService) y necesitamos acceder a servicios que usan bases de datos o cualquier otro recurso que está normalmente asociado al ámbito de una petición HTTP.

Si intentamos inyectar directamente un servicio scoped dentro de un servicio singleton, obtendremos un error al iniciar la aplicación, durante el proceso de validación del árbol de dependencias, ya que el contenedor de .NET no permite esta combinación:

System.AggregateException: 'Some services are not able to be constructed 
(Error while validating the service descriptor 'ServiceType: 
Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType: 
MyBackgroundService': Cannot consume scoped service 'MyDbContext' from 
singleton 'Microsoft.Extensions.Hosting.IHostedService'.)'

Una posibilidad (peligrosa: ¡no hacer!) es deshabilitar esta validación inicial, pero esto solo ocultaría el problema y casi con toda seguridad nos llevaría más tarde a errores en tiempo de ejecución que podrían ser difíciles de diagnosticar y, en el peor de los casos, incluso tumbarnos la aplicación.

En este post vamos a ver la forma correcta de resolver el problema creando ámbitos personalizados dentro del servicio singleton, y usándolos para resolver los servicios scoped que necesitemos.

lunes, 22 de junio de 2026
Desarrolladores dirigiéndose hacia un edificio con el logo de Blazor

¿Deberíamos adoptar ya Blazor como nuestro framework de desarrollo por defecto para las aplicaciones web? Arunachalam Kandasamy analiza los puntos a favor y en contra y nos da consejos para tomar la decisión.

Y sin cambiar de framework, Arulraj Aboorvasamy nos explica cómo gestionar el estado de la aplicación en Blazor para construir aplicaciones escalables.

Se ha presentado Angular 22, y José Manuel Alarcón nos hace un resumen de las novedades más importantes, con muchos ejemplos de código para que podamos entenderlas mejor.

Muchos más enlaces a contenidos interesantes, a continuación.

Por si te lo perdiste...

.NET

lunes, 15 de junio de 2026
Dos celdas en el Area 51: una para Claude Fable y otra para Claude Mythos

Esta semana hay que destacar tanto el anuncio a bombo y platillo de los modelos Claude Fable y Mythos 5 de Anthropic... como su retirada unos días después, debido una orden del gobierno de Estados Unidos por motivos de seguridad nacional. Un mundo curioso este 😉 

También se ha lanzado .NET 11 Preview 5, con novedades interesantes como el soporte para JSONL, full outer joins en LINQ, mejoras en runtime asíncrono, una nueva plantilla de proyecto MCP, jerarquías cerradas en C#, validación en cliente y QuickGrid en Blazor SSR, parámetros proporcionados por variables de sesión y muchas más cosas, que podéis encontrar detalladas aquí.

Por último, destacar un artículo sobre el principio DRY, uno de los más utilizados mientras programamos, pero que a menudo se malinterpreta. Milan Jovanović nos explica por qué y cómo debemos aplicarlo correctamente.

El resto de enlaces a contenidos interesantes, a continuación.

Por si te lo perdiste...

.NET