
Aquí tenemos la entrega número 607 de la recopilación semanal de contenidos interesantes 🙂
Esta semana podemos destacar un extenso artículo de Milan Milanović, donde nos explica por qué C# es el mejor lenguaje de programación: sus características, ventajas, historia, futuro, comparación con otros lenguajes, y mucho más.
También me ha llamado la atención CSS Hell, un conjunto de puzzles donde tendrás que exprimir tus conocimientos de CSS para conseguir los objetivos que te plantean 👉 https://csshell.com/
Finalmente, Juan Luis Guerrero nos muestra cómo combinar distintas tecnologías como Semantic Kernel, Phi-3 y Qdrant para construir una API RAG.
El resto de enlaces, a continuación.
Por si te lo perdiste...
- Cómo conseguir que los parámetros de un constructor primario de C# sean de sólo lectura
José M. Aguilar - Retorno de referencias y referencias locales en C#
José M. Aguilar
.NET
- Going beyond singleton, scoped, and transient lifetimes—tenant, pooled, and drifter
Andrew Lock - Semantic Search PDF Files Locally using .NET / C# and Build5Nines.SharpVector
Chris Pietschmann - Extensions get an update in .NET 10
Steven Giesel - Discover C# 13 new features
Tom Deseyn - Mastering xUnit v3: Mocking Static Methods in .NET
Eli Lopian - What are record types in C# / .NET?
Carmel Eve - Slices and Strings with Rust: Goodbye C# StringBuilder?
Chris Woodruff - Why C#?
Milan Milanović
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: enlaces

Ha sido una semana especial con tanto festivo, pero aún así he conseguido recopilar contenidos que espero que os resulten interesantes, sobre .NET, ASP.NET Core, IA, programación web y muchos otros temas.
En esta ocasión ponemos el foco en la carrera de las tecnológicas lanzando modelos de IA generativa. Aunque esta locura está haciendo que deje de sorprendernos cada lanzamiento, está bien saber que esta semana OpenAI ha presentado tres nuevos modelos: GPT 4.1, o3 y o4-mini.
Vale la pena echar también un vistazo a las mejoras de Copilot en el recientemente lanzado Visual Studio 17.14 Preview 3: autocompletado de código, chat, nuevos modelos, inferencia de próximas ediciones o pegado inteligente son algunas de las novedades.
E interesante el detallado paso a paso de Juan Luis Guerrero sobre cómo crear una extensión de Copilot para Visual Studio Code usando MCP para conectarlo con una herramienta personalizada creada con .NET.
El resto, a continuación.
Por si te lo perdiste...
- Constructores primarios en C# 12
José M. Aguilar - Literales binarios y separador de dígitos numéricos en C#
José M. Aguilar
.NET
- Who can cancel Carmen Sandiego?
Oren Eini - Building a Modular Monolith With Vertical Slice Architecture in .NET
Anton Martyniuk - Choosing a framework to build a native app on Windows with .NET
Matt Lacey - Why .NET Unit Testing Still Feels Hard (and How to Fix It in 2025)
Eli Lopian - Handle cancellation in tests with xUnit.net v3
Anthony Simmon - Structured logging in .NET with NativeAOT
Alexandre HTRB - AutoMapper and MediatR Licensing Update
Jimmy Bogard - Handling exceptions for Task.WhenAll
Fati Iseni - Introducing Incrementalist, an Incremental .NET Build Tool for Large Solutions
Aaron Stannard - Semantic Search in .NET / C# with Build5Nines.SharpVector
Chris Pietschmann - The Strong ARM of .NET: Wrestling with x64 and Arm64 Desktop App Deployment
Rick Strahl

En la entrega número 605 de nuevo superamos los sesenta enlaces a contenidos interesantes recopilados durante la semana pasada, abarcando temas de .NET, ASP.NET Core, Azure, CSS, JavaScript, IA y muchos otros.
Destacar, antes de nada, que con esta entrada superamos oficialmente los quince años desde que comenzamos a recopilar y publicar enlaces interesantes, el 11 de abril de 2010. Hace poco ya celebramos la entrega 600, así que no os daré la turra con esto; simplemente, a estas alturas es curioso revisar aquél post inicial "Enlaces interesantes 1", con formato raro, imágenes rotas, personas que ya no están en primera línea, blogs que no existen, herramientas obsoletas... en fin, el paso del tiempo 😉
Cinco años más (o sea, 20) cumple Git, y Taylor Blau lo celebra con una entrevista al mismísimo Linus Torvalds, el creador de esta herramienta, hoy imprescindible en el día a día de cualquier desarrollador-
Y continuando con el número veinte: algo más de veinte días han pasado desde que se lanzó la segunda versión preliminar, y ya tenemos la Preview 3 de .NET 10, con mejoras en bibliotecas, runtime, SDK, MAUI, C#, ASP.NET Core, Blazor y Entity Framework, entre otros. ¡Vaya ritmo que llevan!
Por último, os recomiendo echar un vistazo al post de Benjamin Dicken sobre la latencia en dispositivos de almacenamiento habituales: su historia, cómo funcionan y el rendimiento que ofrecen. Pero aparte de la información, lo que más me ha gustado es la forma de presentarla.
El resto de enlaces, a continuación.
Por si te lo perdiste...
- Personalizar los mensajes de error de parseado en formularios Blazor
José M. Aguilar - Deconstrucción de tuplas y clases en C# 7
José M. Aguilar
.NET
- .NET 10 Preview 3 is now available!
.NET Team - Dragging your whole database into memory!
Steven Giesel - How to monitor .NET applications startup
Christophe Nasarre - Kafka and .NET: Practical Guide to Building Event-Driven Services
Hamed Salameh - Announcing CommandLineExtensions, a .NET DI Compatible System.CommandLine Facade
Peter Ritchie - How we ended up rewriting NuGet Restore in .NET 9
NuGet Team - Optimizing JSON in .NET: Newtonsoft.Json vs System.Text.Json
Ali Hamza Ansari - Boost Your .NET Projects: Retry Logic Made Easy with Spargine’s ExecutionHelper
David McCarter - Build a Token Visualizer in Dotnet
Ed Charbeneau

Una semana más, vamos con una recopilación de contenidos interesantes que he ido descubriendo durante los últimos días. De nuevo, más de 60 enlaces a artículos sobre .NET, C#, Azure, ASP.NET, Blazor, Machine Learning, IA, JavaScript, HTML, CSS y mucho más. Espero que os resulten útiles.
En esta entrega hay bastantes temas reseñables, pero me voy a quedar sólo con unos cuantos 🙂
Para celebrar el 50 aniversario de Microsoft, Bill Gates nos cuenta los inicios de la compañía y comparte el código de Altair Basic, su primer producto. Aparte del contenido, es un post con una estética retro fantástica que bien merece un vistazo.
Un nuevo terremoto, con epicentro en los conocidos Automapper y MediatR, que de nuevo traen a la palestra el problema de la sostenibilidad de los proyectos open source y, obviamente, con reacciones de todo tipo al respecto.
José Manuel Alarcón nos muestra Docker Model Runner, una herramienta que permite ejecutar localmente modelos generativos de IA de forma muy sencilla, y acceder a ellos desde línea de comandos o mediante una API compatible con OpenAI.
En el apartado de historias truculentas, descubrimos un post de Jacob Voytko publicado hace unas semanas, donde describe su lucha contra el bug más difícil al que se ha enfrentado mientras trabajaba en el equipo de Google Docs. Muy interesante-
También traemos una buena noticia para los frontenders: por fin podemos personalizar visualmente el elemento <select>
con CSS. En este artículo de Adam Argyle nos cuenta cómo hacerlo y hasta dónde podemos llegar con esta nueva posibilidad-
Y por último... ¡boom! Meta presenta y pone a disposición de la comunidad varias ediciones de Llama 4, modelos abiertos multimodales con hasta 10 millones de tokens de contexto, velocidad y rendimiento de primera línea. Y próximamente habrá más, y más potentes.
El resto de enlaces, a continuación.
Por si te lo perdiste...
- Personalizar los mensajes de error de parseado en formularios Blazor
José M. Aguilar - Deconstrucción de tuplas y clases en C# 7
José M. Aguilar
.NET
- C# Language Mind map v14
Steven Giesel - Records and Collections
Jon Skeet - Finalizers are tricker than you might think. Part 2
Sergey Teplyakov - Modernizing push notification API for Teams
Rudolf Kurka - AutoMapper and MediatR Going Commercial
Jimmy Bogard - Is the .NET Ecosystem in Crisis?
Matt Goldman - .NET on Heroku: Now Generally Available
Rune Soerensen - What's New in C# 14? Key Features and Updates You Need to Know
Vinoth Kumar Sundara Moorthy - Converting between .Net DateTime and JavaScript Date Ticks
Joel Ivory Johnson

La recopilación de enlaces número 603 está ya disponible, con más de 60 links a contenidos sobre .NET, C#, ASP.NET, Azure, Machine Learning, Web, HTML, CSS, JavaScript y otros temas que, como siempre, espero que os resulten interesantes 🙂
Si desarrolláis páginas con muchos elementos en el DOM, os puede venir bien echar un vistazo a content-visibility
, una propiedad CSS que nos puede ayudar a mejorar el rendimiento de páginas web al omitir la renderización de elementos que no son visibles en la pantalla 👉 https://cekrem.github.io/posts/content-visibility-auto-performance/
Continuando en el mundo web, pero esta vez desde la perspectiva de la seguridad, tenemos un gran repaso de Maarten Balliauw al sistema de tokens antiforgery en ASP.NET Core. En este post, veremos qué es CSRF y cómo estos tokens pueden ayudarnos a prevenirlo cuando utilizamos MVC, Razor Pages o Minimal APIs.
También me ha parecido curioso el post de Mohammad Zeya Ahmad sobre tiempos de latencia de distintas operaciones frecuentes. Está bien para tener en mente al menos las proporciones y magnitudes que manejamos en cada caso.
Y por último, echamos un vistazo al protocolo de moda: MCP. Se trata de un protocolo abierto, creado por Anthropic, que propone mecanismos de integración entre aplicaciones basadas en modelos de texto y fuentes de datos o herramientas. Muy interesante.
El resto, a continuación...
Por si te lo perdiste...
- Collection expressions, la nueva sintaxis de inicialización de colecciones en C# 12
José M. Aguilar - Expresiones throw en C# 7
José M. Aguilar
.NET
- A Simple State Machine in .NET
Ricardo Peres - Using Windows.Media SpeechRecognition in WPF
Rick Strahl - Optimizing concurrent count operations
Oren Eini - C# Tip: An In-Depth Look at CallerMemberName (and some Compile-Time trivia)
Davide Bellone - Retrieving Services from Dependency Injection in .NET
Ricardo Peres

Otra semana más, aquí tenemos los enlaces recopilados durante los últimos siete días que, como de costumbre, espero que os resulten interesantes 🙂
En esta ocasión, nos llevamos la sorpresa de la aparición de la segunda preview de .NET 10, apenas veinte días después de publicarse la primera. ¿Se han adelantado? ¿O es que se retrasaron con la primera y al final se han agolpado? 🤔 Bueno, la cuestión es que aquí la tenemos, con novedades en el SDK, C#, runtime y los frameworks asociados (ASP.NET Core, MAUI, Entity Framework, Windows Forms, etc.)
Por otro lado, ¿qué es eso del vibe coding? Sin duda es muy espectacular, pero, ¿nos va a quitar el trabajo a todos? ¿Pondrá la programación al alcance de cualquiera? El artículo de Jacob Anderson lo explica.
También podemos leer a Mark Seemann hablando sobre versionado de bases de código y estrategias para la gestión de breaking changes en proyectos de largo recorrido. Muy interesante.
El resto de enlaces, unos sesenta, los tenéis a continuación.
Por si te lo perdiste...
- Cómo aplicar atributos a propiedades de un record en C#
José M. Aguilar - Tuplas en C#
José M. Aguilar
.NET
- .NET 10 Preview 2 is now available!
Marcelo Oliveira Santos - Create a Task and Start it Later
Bryan Hogan - .NET Metrics
Ricardo Peres - MSTest 3.8: Top 10 features to supercharge your .NET tests!
Youssef Fahmy & Amaury Levé - Metadata Consulting [dot] ca: C# Round Datetime Extension To Nearest Minute, Round Up, Round Down
Metadata Consulting - Putting Tasks in a Cache, and Computing Only Once, When First Requested
Bryan Hogan

Ya tenemos por aquí la recopilación de enlaces de la semana, en esta ocasión con más de 50 enlaces, aunque especialmente cargadas las secciones de .NET y desarrollo web.
Destacable el artículo de Derek Comartin sobre el principio YAGNI (You Aren't Gonna Need It, "No vas a necesitarlo") en el desarrollo de software, y cómo la tentación de añadir abstracciones o código genérico puede llevarnos a un exceso de complejidad que no aporta valor al proyecto.
También, Ricardo Peres continúa su interesante exploración sobre los puntos de extensibilidad de ASP.NET Core, centrándose en esta ocasión en el framework MVC.
El último dramita en la comunidad .NET lo protagoniza el compilador de TypeScript, que ha sido portado a Go y ha multiplicado por diez su rendimiento. Anders Hejlsberg nos lo cuenta de primera mano en este artículo, y podéis seguir el culebrón en este hilo de GitHub.
Y para finalizar con comentario rápido, sabed que HybridCache ya ha salido de preview. Claudia Regio nos resume las novedades de esta herramienta.
El resto de enlaces, a continuación 🙂
Por si te lo perdiste...
- Blazor Server-Side Rendering en .NET 8
José M. Aguilar - Inline out variables en C# 7
José M. Aguilar
.NET
- Hello HybridCache! Streamlining Cache Management for ASP.NET Core Applications
Claudia Regio - New, Simpler Solution File Format
Nayana Srikanth - System.Linq.Async is part of .NET 10
Steven Giesel - Top 15 Mistakes .NET Developers Make: How to Avoid Common Pitfalls
Anton Martyniuk - Writing a .NET Garbage Collector in C#
Kevin Gosse - Microsoft .NET Code Analysis: When CountAsync() Outperforms AnyAsync() in .NET
David McCarter - Ardalis Specification v9 Released
Steve Smith - Accessing Windows Settings Dialogs from Code via Shell Commands
Rick Strahl - .NET Heisenbug Mystery Theater: How Did an Exception Escape its Catch Block?
Aaron Stannard - .NET Interview Questions and Answers (With Code Examples)
Claudio Bernasconi

Esta semana llegamos a la entrega número 600 de los enlaces interesantes, ¡quién lo iba a decir cuando publiqué la primera recopilación, allá por abril de 2010! Desde entonces, exceptuando los periodos vacacionales y alguna semana que por motivos personales o profesionales no haya podido ser, cada día dedico un buen rato a revisar mis fuentes y seleccionar los contenidos que me parecen más interesantes para compartirlos con vosotros. Luego, normalmente los domingos, me siento a escribir la entrada, añadiendo una pequeña introducción y organizando los enlaces por categorías para facilitar su consulta.
Por cuantificarlo de alguna forma, cada recopilación suele tener entre 60 y 70 links, así que he compartido como mínimo 36.000 enlaces a contenidos que he considerado valiosos, y, haciendo cuentas rápidas, he debido dedicar más de 3.000 horas (unos 375 días a jornada completa) a revisarlos y seleccionarlos. Si tenéis curiosidad por cómo lo hago, los criterios de selección de contenidos, cómo los ordeno, cuáles son mis fuentes, qué herramientas uso, etc., lo podéis leer en este post de hace unos años 👉 https://www.variablenotfound.com/2020/04/diez-anos-de-enlaces-interesantes-lo.html
Pero bueno, creo que el esfuerzo está justificado. En primer lugar, porque me gusta estar al día, y creo que en nuestra profesión es totalmente necesario. Y luego, porque ya que de todas formas estoy dedicando tiempo a ello, ¿por qué no compartirlo con vosotros? Y si a alguien le resulta útil, o le ahorra tiempo, o le descubre algo nuevo, pues ya me doy por satisfecho 🙂
¡Muchas gracias a todos por estar ahí!
Y dicho esto, vamos con la recopilación semanal, de nuevo más de sesenta enlaces, en esta ocasión con mucha presencia de contenidos sobre inteligencia artificial, novedades en herramientas, .NET, MAUI, Azure y Web.
En esta cosecha, muy interesante, y de agradecer, el esfuerzo de José Manuel Alarcón por traducir a un idioma que podamos entender los mortales lo que es Majorana 1 y cómo promete revolucionar el mundo en los próximos años.
También me ha alegrado volver a leer a Marc Rubiño, comentando esta vez el papel de los CTO en las startups, los desafíos a los que se enfrentan y buenas prácticas para lograr el éxito en ese rol.
Juan Irigoyen da un buen repaso a los niveles de aislamiento de transacciones en SQL Server, un tema que siempre es interesante y que conviene tener claro, especialmente en aplicaciones con alta concurrencia.
Y por último, interesante también el post de Sahil Malik donde muestra cómo generar imágenes con IA usando modelos locales.
El resto de enlaces, a continuación.
Por si te lo perdiste...
- 8 formas de usar tuplas en C#
José M. Aguilar - Tip: desinstalar rápidamente paquetes NuGet en proyectos .NET Core
José M. Aguilar
.NET
- .NET 10: Game-Changer or Just Another Version?
DeeDee Walsh - Abusing await with a result type to achieve rust-like error propagation in C# -
Arkleseizure - Creating an analyzer to detect infinite loops caused by ThreadAbortExceptions
Andrew Lock - How to Perform Dynamic Code Execution in .NET with C# Eval Expression
Anton Martyniuk - Generic C# Methods with Enum Constraints for .NET
Khalid Abuhakmeh - Using legacy text encodings in .NET Core
Bart Wullems - Capture .NET Profiler Trace on the Azure App Service platform
Csharpguitar - Disable NuGet Central Package Management for specific projects
Bart Wullems - Co/Contravariance in C# Interfaces
Ian Griffiths - C# - Set environment in unit tests
Bart Wullems

Aquí van los enlaces recopilados en la última semana de febrero, una buena colección que espero que os resulte de utilidad.
En esta ocasión, además de contenidos interesantes sobre C#, ASP.NET, Visual Studio, JavaScript, CSS, IA y otros temas, creo que la cosa ha ido de previews:
- La presentación de .NET 10 Preview 1
- La salida de preview del formato simplificado para soluciones .NET, ".SLNX"
- La presentación de GitHub Copilot agent mode (preview)
- La presentación de la preview de GPT-4.5
También me ha parecido muy completo el artículo de Joseph Thacker sobre cómo hackear aplicaciones y agentes basados en Modelos de Lenguaje.
Por último, en el capítulo de despedidas de clásicos, vamos a empezar a decirle adiós a Skype, una herramienta que, aunque en agónico declive desde hace ya tiempo, sin duda marcó una época.
El resto de contenidos, a continuación 🙂
Por si te lo perdiste...
- Formatear cadenas interpoladas en C#
José M. Aguilar - Funciones locales en C# 7
José M. Aguilar
.NET
- .NET 10 Preview 1 is now available!
.NET Team - SLNX Finally here
Mattias Karlsson - Building a Better MediatR Publisher With Channels (and why you shouldn't)
Milan Jovanović - C# 14: Null-conditional assignment
Steven Giesel - Disabling localized satellite assemblies during dotnet publish
Andrew Lock - How To Implement Caching Strategies in .NET
Anton Martyniuk - Using PostHog in your .NET applications
Phil Haack - Fixing out of sequence timestamps
Colin Mackay - How to Parse and Extract HL7 Data in C# .NET
Greg Lutz - Doing Some Cleanup in a BackgroundService
Bryan Hogan - Measure Application Performance in .NET Using IMeterFactory
Muhammed Saleem - Microsoft .NET Code Analysis: Optimizing JSON Serialization with Cached Options
David McCarter - C# 14 - New Features and Updates
Vijay Kumari - Measuring the Performance of JSON Alternatives in .NET
Ricardo Peres

Un lunes más, ya tenemos aquí la colección de enlaces a contenidos interesantes recopilados durante la semana pasada. Como de costumbre, encontramos lecturas sobre .NET, ASP.NET Core, Blazor, IA, datos, frontend, JavaScript, TypeScript, MAUI y otros temas que espero os aporten algo 🙂
En esta ocasión, me gustaría destacar algunos de los artículos de la semana que más me han llamado la atención.
Primero, una nueva demostración de la velocidad brutal con la que se van produciendo avances tecnológicos de escala: la presentación por parte de Microsoft de Majorana 1, el nuevo chip que, según anuncian, adelantará el uso real de computación cuántica a unos años, en lugar de las décadas que estaban previstas.
También me ha resultado interesante el post sobre cómo SoundCloud evolucionó su su arquitectura utilizando BFF, microservicios y DDD. Estos contenidos basados en experiencias reales suelen ser bastante inspiradores.
Toda seguridad es poca, por lo que siempre es recomendable volver a echar un vistazo a las guías OWASP sobre cómo asegurar nuestras aplicaciones web full-stack.
Por último, es impresionante leer las mejoras que se van introduciendo en Visual Studio, especialmente las que hacen que el IDE sea cada vez más inteligente y, por tanto, nosotros seamos cada vez más productivos. En esta entrega, encontramos el soporte para tool calling en Copilot, y la información sobre el código usado como referencia para los autocompletados.
El resto, a continuación...
Por si te lo perdiste...
- Cambiar el nombre de la carpeta raíz de las páginas en Razor Pages
José M. Aguilar - Adivina, adivinanza: ¿por qué no compila este código?
José M. Aguilar
.NET
- IEnumerable vs IEnumerator in C#: One is 2x Faster
Steven Giesel - Understanding Garbage Collection - How the dotnet Garbage Collector Works
Darren Horrocks - The Curious Case of .NET ConcurrentDictionary and Closures
Khalid Abuhakmeh - How to Convert Word to PDF in C# with Advanced Formatting Options
Mohanaselvam Jothi - Leveraging Tuples in C#: Real-World Use Cases
Ali Hamza Ansari - Writing a .NET Garbage Collector in C#
Kevin Gosse - Killing a Worker Application from a BackgroundService
Bryan Hogan - Microsoft .NET Code Analysis: Optimizing Byte-to-Hex Conversions
David McCarter - Retrieving Images from the Clipboard Reliably in WPF Revisited
Rick Strahl

Aquí tenemos la colección semanal de enlaces a contenidos interesantes relacionados con el desarrollo de software con C#, ASPNET, Blazor, JavaScript, CSS, Azure, AI, .NET MAUI, Visual Studio y otros.
Por destacar, esta semana encontramos un interesante post de Ricardo Peres donde nos cuenta qué eso de OpenTelemetry, cómo enviar datos de telemetría desde aplicaciones ASP.NET Core, y cómo recopilarlos y consultarlos usando herramientas como Grafana, Loki, Tempo y Prometheus a través de una imagen de Docker. Imperdible.
También me ha parecido curioso Gandalf, el juego al que llego a través del post de Bart Wullems, que nos permite comprobar nuestras habilidades para manipular un LLM usando inyección de prompts. Sin duda, da para un buen rato de maldad y diversión 😉
El resto, a continuación. ¡Espero que os resulten interesantes!
Por si te lo perdiste...
- ¿Acceder a miembros privados de una clase C# sin usar reflection? ¡En .NET 8 es posible!
José M. Aguilar - Flushing asíncrono en ASP.NET Core MVC
José M. Aguilar
.NET
- Microsoft.Testing.Platform: Now Supported by All Major .NET Test Frameworks
Amaury Levé - Using .NET on Linux
Bryan Hogan - Unlocking delegate's potential in C#
Ali Hamza Ansari - Writing a .NET Garbage Collector in C#, part 3
Kevin Gosse - Why Large JSON Objects Are Slowing Down Your .NET Application (And How to Fix It)
Hossein Kohzadi - C# Dictionary: How to Create One and Best Practices
Stackify Team - Exploring the .NET Ecosystem: A Visual Mind Map
Abhijit Jana

Ya está disponible la entrega semanal número 596 de la serie, donde, como de costumbre, podéis encontrar decenas de links a contenidos que he ido recopilando durante la semana y considero interesantes sobre .NET, ASP.NET Core, Blazor, acceso a datos, inteligencia artificial, programación en frontend, herramientas y otros temas.
En esta ocasión, lo que me más ha llamado la atención es la retirada de Azure Data Studio. Ahora que estaba empezando a tenerle cariño a esta herramienta para gestionar mis bases de datos SQL Server, resulta que la van a discontinuar en favor de la extensión MSSQL extension de Visual Studio Code.
¿Sabíais que la media de tiempo que se tarda en volver a concentrarse en una tarea después de una interrupción es de 23 minutos? Muy interesante el artículo de Milan Milanović sobre cómo los cambios de contexto, o context switching, afectan a la productividad de los desarrolladores. Aunque cualquiera que se dedique al desarrollo ya lo ha sentido en sus carnes, es interesante leer un análisis más profundo sobre el tema.
Vale la pena echar también el vistazo a las reflexiones de Tim O'Reilly sobre cómo afectará la irrupción de la IA en el trabajo de los desarrolladores. ¿Iremos todos a la calle? ¿O, por el contrario, se abrirán nuevas oportunidades? Spoiler: la clave es adaptarse.
El resto de enlaces, a continuación...
Por si te lo perdiste...
- TimeProvider: el proveedor de tiempos de .NET 8
José M. Aguilar - Acceder a IIS Express desde otro equipo de la red local
José M. Aguilar
.NET
- Why Tracebit is written in C#
Sam Cox - Modelling data relationships with C# types
Mark Seemann - Timers, Finalizers and Memory Leaks
Sergey Teplyakov - Supporting multiple .NET SDK versions in a source generator
Andrew Lock - Vogen and Value Objects with C# and .NET
Khalid Abuhakmeh - Writing a .NET Garbage Collector in C#
Kevin Gosse - Migrate from MSTest to xUnit using a Roslyn analyzer
Gérald Barré - Numeric sorting in .NET
Anthony Simmon - How to Protect Word Documents in C#: Step-by-Step Guide
Mohanaselvam Jothi - .NET 9 Networking Improvements
Máňa & Natalia Kondratyeva & Anton Firszov - LINQ MindMap: .NET 10 Edition
Steven Giesel

Estrenamos febrero con la recopilación número 595 de enlaces interesantes, cargado de contenidos variados y de calidad relacionado con el desarrollo de software: .NET, ASP.NET, Azure, conceptos, patrones y buenas prácticas, IA, programación web (HTML, CSS, Javascript, frameworks), Visual Studio y herramientas, .NET MAUI, y otros.
Sin duda, la sorpresa y gran protagonista de la semana ha sido el lanzamiento de DeepSeek R1, la IA open source que ha puesto patas arriba a los que hasta ahora se consideraban los reyes del mambo, demostrando que China compite en primera división de los modelos generativos.
También es interesante echar un vistazo bajo el capó de los navegadores, a los mecanismos encargados de interpretar los para interpretar el código HTML y CSS que les llega y crear su representación visual. Aditya Bhattacharya nos lo cuenta el artículo HTML & CSS Deep Dive Part 1: How Browsers Make Sense of Your Code.
Sergey Teplyakov nos recuerda en el post The Dangers of Async Void lo peligroso que puede ser crear métodos o funciones async void
en C#, una práctica que puede llegar a tumbar por completo una aplicación.
El amigo Braulio Díez vuelve con sus historias para no dormir, con el artículo Las migraciones tienen veneno, una visión práctica y realista de lo que hay detrás de estos proyectos que, aunque a primera vista pueden parecer sencillos, tienen bastantes trampas ocultas.
Por último, desde CampusMVP nos llega un post que abre los ojos sobre la realidad del open source: ¿es gratis? ¿quién lo mantiene? ¿quién contribuye? ¿Es sostenible? Muchas preguntas interesantes a las que podremos dar respuesta en el post y vídeo donde José Manuel Alarcón y Jorge Turrado debaten sobre el tema.
El resto de enlaces, a continuación 🙂
Por si te lo perdiste...
- ¡No guardes como cadena el resultado JSON de la llamada a una API si lo único que quieres hacer es deserializarla!
José M. Aguilar - Personalizar la negociación de contenidos en ASP.NET Core MVC
José M. Aguilar
.NET Core / .NET
- When will .NET Framework retire?
Steven Giesel - Implementing AES Encryption With C#
Milan Jovanović - How Fast is Microsoft C#? Discover the Advantages
Dave Ward - Moving from .NET 6 to 8
Joao Correia - Supporting multiple .NET SDK versions in analyzers and source generators
Andrew Lock - The New LINQ Methods from .NET 6 to .NET 9
Anton Martyniuk - Writing a .NET Garbage Collector in C#
Kevin Gosse - The Dangers of Async Void
Sergey Teplyakov - Useful New-ish Features in .NET/C#
David Ramel

Aquí tenemos la entrega número 594 de enlaces a contenidos interesantes que he ido recopilando durante la semana, con mucho .NET, ASP.NET Core, IA, Azure, JavaScript, CSS, herramientas de desarrollo y más.
En esta ocasión me gustaría destacar el post de Neo Kim sobre cómo funciona Bluesky. Me encantan estos posts que detallan los engranajes que hay por detrás de aplicaciones que todos conocemos y que tienen unos requisitos altísimos de escalabilidad y rendimiento.
También me ha resultado muy interesante el post de Milan Jovanović sobre cómo escalar monolitos, porque creo que puede ser de utilidad si tenéis aplicaciones que con el tiempo han ido creciendo más allá de lo que se esperaba en un principio.
También en la sección "cómo funcionan las cosas que usamos todos los días" 😉, el post de Moncef Abboud es muy interesante para profundizar un poco en los algoritmos de compresión más habituales.
Por último, me ha hecho ilusión ver que NDepend sigue evolucionando e introduciendo mejoras para ofrecer perspectivas únicas de nuestras bases de código. Vale la pena echarle un vistazo.
Y ahora, a por el resto...
Por si te lo perdiste...
- Invocar View Componentes usando Tag Helpers en ASP.NET Core MVC
José M. Aguilar - Usar kebab-case en rutas de aplicaciones ASP.NET Core MVC y Razor Pages
José M. Aguilar
.NET Core / .NET
- Why C# Developers Should Also Learn Rust, and What It Can Teach Them
Darren Horrocks - Announcing ConsoleApplicationBuilder, DI in console applications, simply
Peter Ritchie - Accessing MSBuild properties and user configuration from source generators
Andrew Lock - WinForms: Analyze This (Me in Visual Basic)
Klaus Loeffelmann - Seamless Slide Conversion: PowerPoint to Images in C#
Dharanya Sakthivel - Using Roslyn to analyze and rewrite code in a solution
Gérald Barré - The Disposable Pattern in ASP.NET Core
Ricardo Peres - C# Tip: How to create Custom Attributes, and why they are useful
Davide Bellone - Mastering BenchmarkDotNet: The Essential Benchmarking Library for .NET Developers
Jayraj Chhaya - 5 Effective Ways to Navigate PDF Pages in C# Using .NET PDF Library
Chinnu Muniyappan

Aquí está la recopilación semanal número 593 de enlaces interesantes, donde podéis encontrar un montón de referencias a artículos sobre C#, .NET, ASP.NET, Azure, desarrollo web, inteligencia artificial, Visual Studio y otros temas 🙂
Destacable el post "Tendencias en programación JavaScript para 2025", de José Manuel Alarcón, donde desvela hacia dónde se dirige el desarrollo JavaScript este año recién estrenado, en términos de herramientas, frameworks, metaframeworks, programación en backend y los nuevos paradigmas impulsados por la irrupción de la inteligencia artificial. Si usáis este lenguaje y su ecosistema, no os lo perdáis.
Los que diseñáis sistemas distribuidos con ASP.NET Core, os puede venir bien echar un vistazo a la introducción de Ricardo Peres a la implementación de trazas distribuidas en ASP.NET Core.
El artículo de Mark Heath sobre el uso de tools de forma segura con LLMs, Using Tools (Safely) with LLMs, me ha sido útil para descubrir que las bibliotecas cliente de Azure OpenAI también tienen la capacidad de ejecutar herramientas, algo que pensaba que había que hacer manualmente o con frameworks más potentes como Semantic Kernel.
Y muy bueno el recopilatorio del equipo de Visual Studio sobre novedades destacables que se introdujeron en el producto durante 2024. Si usáis a diario esta herramienta, echadle un ojo porque hay cosas muy interesantes.
Espero que os sean de utilidad 🙂
Por si te lo perdiste...
- Comprimir el resultado de acciones específicas en ASP.NET Core MVC
José M. Aguilar - Non-nullable property must contain a non-null value when exiting constructor: 7 formas de evitar el warning CS8618 en C#
José M. Aguilar
.NET Core / .NET
- The memory leak in ConcurrentQueue
Oren Eini - Measuring the impact of locks and waits on latency in your .NET apps
Christophe Nasarre - Stop the Leaks: Properly Disposing Objects in .NET
David McCarter - C# foreach: Definition and Best Practices
Stackify Team - Reading compilation options and the C# version in source generators
Andrew Lock - Local inter-process communication over named pipes with ASP.NET Core or StreamJsonRpc in .NET
Anthony Simmon - Comparing Records, Structs, and Classes in C#: When to Use What?
Ali Hamza Ansari - Enhance Your .NET HttpClient with HSTS Support
Gérald Barré - Introducing MSBuild.Sdk.SqlProj 3.0 - create, build, validate, analyze, pack and deploy SQL database projects with .NET 9
Erik Ejlskov Jensen - Mastering C# - Pattern Matching
Jesse Liberty - The Transition of .NET FluentAssertions to Paid Software
Tomasz Sobczak - C# Enum: Definition and Best Practices
Stackify Team - Working with JsonSerializerContext in System.Text.Json and Refit
Tomasz Cielecki

Tras el parón navideño, volvemos a la carga con la primera recopilación de 2025 🙂
Bueno, la frase anterior no es del todo cierta. Por una parte, aunque haya dejado de publicar durante un par de semanas, no he dejado de recopilar enlaces, así que esta edición es especialmente extensa: más de 90 enlaces. Y por otra parte, en realidad sería la segunda recopilación, si contamos la revisión de los contenidos más vistos del blog durante el pasado año que publiqué ayer 😊
Pero bueno, al tema...
Es difícil destacar algo en concreto ante tanto contenido, pero quizás me quedo con el post "The Myth of Perfect Code: Why It’s Hurting You More Than Helping", donde Terrance Craddock reflexiona sobre lo que deberíamos considerar "código perfecto".
También me voy a quedar con algo que, por diferente, me ha llamado la atención: "Unique Solving Method for Rubik's Cube", un método para resolver el cubo de Rubik presentado de forma muy visual. Si sois de los que en los 80 pasasteis horas intentando resolverlo, seguro que como mínimo os resultará curioso 🙂
Por si te lo perdiste...
- Este código C# no compila. ¿Cómo lo hacemos funcionar sin tocarlo?
José M. Aguilar - Crear desplegables desde enums en ASP.NET Core MVC
José M. Aguilar
.NET Core / .NET
- Critical: .NET Install links are changing
Richard Lander - Scheduling Background Jobs With Quartz in .NET (advanced concepts)
Milan Jovanović - Fast build and high security in .NET with Package Source Mapping
Tomasz Sobczak - Back to Basics: Using the Parallel Library to Massively Boost Loop Performance
Rick Strahl - Logging in .NET: Best Practices and Why You Should Love It
Marius Schröder - 10 Reasons to Upgrade to .NET 9
Anton Martyniuk - Vogen: turn your primitives (ints, decimals etc.) into value objects that represent domain concepts
Steve Dunn - StackOverflowException vs. OutOfMemoryException
Sergey Teplyakov - Static Lambda in C# 12 : Performance Improvement
Devesh Omar - C# Null-Conditional (?.) & Null-Coalescing (??) Operators Explained
Ivan Kahl - Automatically format your dotnet code using dotnet format
Josef Ottosson - Think Beyond Synchronous: The Ultimate Guide to Tasks in C#
Chris Woodruff - Moq Unit Testing in .NET Core with xUnit
Jaimin Shethiya - Implementing an interceptor with a source generator
Andrew Lock - Writing a String Numeric Comparer with .NET 9
Khalid Abuhakmeh - .NET 9 upgrade - notnull constraint
Bart Wullems - Exploring CollectionsMarshal for Dictionary
Gérald Barré - C# 12.0: collection expressions
Ian Griffiths - Writing a .NET profiler in C#
Kevin Gosse - Modern C# Part 3 – Switch Expressions
Jesse Liberty

Aquí van los enlaces recopilados durante la semana pasada, en lo que será ya la última entrega del año. Volveremos a las tareas de recolección la primera semana de enero, semana arriba o semana abajo (¡soy malo para esto de las estimaciones!😉).
Esta edición incluye enlaces a casi 50 contenidos que me han llamado la atención, aunque me gustaría resaltar especialmente algunos de ellos.
En primer lugar un gran repaso de CampusMVP a los CWE Top 25 de 2024 o, en otras palabras, a los principales agujeros de seguridad que dejamos por detrás los desarrolladores al crear nuestras aplicaciones. Algunos de ellos seguro que los conoces ya, como inyección SQL o XSS, pero hay muchas más perversidades que debemos conocer y evitar.
Muy interesante, como siempre, los resultados publicados por JetBrains sobre el estado del ecosistema de desarrolladores del año que está a punto de terminar, obtenidos de una encuesta a más de 23.000 developers de todo el mundo. Aquí encontraréis información valiosa sobre los proyectos en los que más trabajamos, qué lenguajes son los más utilizados en distintas áreas, qué herramientas son las preferidas, o si seguimos pensando que la IA nos va a quitar el trabajo a todos los desarrolladores antes de acabar totalmente con la humanidad, o si en cambio es una gran aliada 😉
Por último, también me parece destacable los anuncios que Microsoft ha dejado caer hace unos días: la disponibilidad de un nuevo plan gratuito de GitHub Copilot para los usuarios de Visual Studio y Visual Studio Code. Bueno, obviamente tiene sus limitaciones, pero es un buen punto de partida para los que aún no habéis podido probarlo o no tenéis acceso a licencias superiores.
Por último, aprovecho también para desearos a todos unas muy felices fiestas. Disfrutad de la mejor compañía posible y pasadlo bien, pero eso sí, sin excesos, que luego vienen los arrepentimientos... 😉
Por si te lo perdiste...
- Serialización polimórfica con System.Text.Json
José M. Aguilar - Cómo saber si un nivel de traza está activo en aplicaciones ASP.NET Core/MVC
José M. Aguilar
.NET Core / .NET
- .NET Framework Migration to .NET 9
Derek Comartin - Some news about .NET 10: BackgroundServices and new String Comparer
Steven Giesel - Deep C# - The Perils of the C# Parallel For
Mike James - How and why to write mutation tests in C#
Daniel Ward - Special properties in .NET projects
Alexandre H. T. R. - Deserializing JSON to a string or a value
Phil Haack - Functional Programming With C# - Make Dictionaries Functional!
Simon Painter - C# 13 and .NET 9: Personal Highlights
Dmytro Misik

Esta semana la cosecha ha sido especialmente prolífica y traemos más de 70 enlaces a contenidos que creo que vale la pena echar un vistazo, como siempre, categorizados por área de interés: .NET, ASP.NET Core, Azure, patrones y buenas prácticas, acceso a datos, inteligencia artificial, programación web (HTML, CSS, Javascript...), herramientas de desarrollo, .NET MAUI y otros.
Como vengo haciendo últimamente, me gustaría destacar el gran post de José Manuel Alarcón sobre técnicas de carga especulativa en páginas web que te ayudarán a mejorar el rendimiento de las aplicaciones.
Muy bueno también el deep dive de Ricardo Peres sobre los tokens de cancelación de tareas, a veces unos grandes desconocidos.
Por último, dos avisos a navegantes: primero, David Grace nos recuerda que en .NET 9, los proyectos de APIs ya no incorporan por defecto Swagger y propone algunas alternativas, y, segundo, Steve Smith alerta de los peligros de usar eventos de .NET en aplicaciones ASP.NET Core y aporta opciones para conseguir lo mismo.
Todo esto, y mucho más, a continuación...
Por si te lo perdiste...
- Binding de parámetros en Minimal APIs con BindAsync
José M. Aguilar - Añadir automáticamente maxlength a inputs usando tag helpers en ASP.NET Core MVC
José M. Aguilar
.NET Core / .NET
- Announcing .NET Community Toolkit 8.4
Sergio Pedri - Understanding Multidimensional Arrays in C#
Rohan Rao - Recurring Tasks in .NET C# : All options explained
Zied Rebhi - Why IActorRef.Tell Doesn't Return a Task
Aaron Stannard - Manually Implementing an Identity Store for Asp.Net Identity
Paul Michaels - Extracting Icons From A Windows DLL Or EXE With C#
Den Delimarsky - LINQ might get a "left join" operator in .net 10
Steven Giesel - Using vectorization in C# to boost performance
Brant Burnett - Inside a Where() - Understanding IEnumerables
James Curran - Object Pools in C#: Examples, Internals and Performance Benchmarks
Alexey Fedorov - Invoking Async Power: What Awaits WinForms in .NET 9
Michael Taylor - Using the YamlDotNet source generator for Native AOT
Andrew Lock - How To Replace Exceptions with Result Pattern in .NET
Anton Martyniuk - Easily Convert Excel to HTML in 3 Steps With C#
Kurmitha Manickhaperumal - Ultra: An advanced profiler for .NET Applications on Windows
Alexandre Mutel - The State of Aspect-Oriented Programming in C# [2025]
Metalama Team - What's New in .NET 9 and C# 13
Ricardo Peres - C# 12: The Experimental Attribute
Thomas Claudius Huber - Meet TUnit: The New, Fast, and Extensible .NET Testing Framework
Sander ten Brinke - The Ultimate Guide to .NET Environment Variables
Hatim Rih - Efficient searching in .NET with SearchValues
Bart Wullems - The attribute OverloadResolutionPriority in .NET 9 and C# 13
NDepend Team - More Testing Tips With C#
Roman Stoffel - MessagePack for C# v3 Release with Source Generator Support
Yoshifumi Kawai - .NET Cancellation Tokens
Ricardo Peres - Avoid Using C# Events in ASP.NET Core Applications
Steve Smith

Aunque un día más tarde de lo normal debido al puente, aquí van los tradicionales enlaces recopilados durante la semana pasada. Como es habitual, la mayoría de los enlaces son a contenidos en inglés, pero también hay algunos en español que me gustaría destacar en esta ocasión.
Por una parte, Jose Manuel Alarcón explica cómo clonar superficialmente un repositorio GIT (shallow clone) para obtener sólo los últimos commits y ahorrar tiempo y espacio en disco.
También muy interesante el post de Braulio Díez, donde reformula la clásica regla del Boy Scout y, quitándole algo de épica romántica, nos recuerda que a veces no siempre es buena idea tocar donde no debemos, o hacerlo de cualquier forma.
Y ahora, vamos a por el resto...
Por si te lo perdiste...
- Eliminaciones y actualizaciones masivas (bulk deletes/updates) con EF Core 7
José M. Aguilar - Confluencia de ramas en el pipeline de ASP.NET Core
José M. Aguilar
.NET Core / .NET
- From .NET 6 to .NET 8, my migration experience:Fixing missing x-forwarded headers in .NET 8 isolated Azure Functions
Anthony Giretti - Using Testing.Platform with NET 9
Dennis Frühauff - Polymorphic deserialization with YamlDotNet
Anthony Simmon - Faster Dictionary in C#
NDepend Team - C# Tip: 2 ways to generate realistic data using Bogus
Davide Bellone - Lesser known CLR GC Handles
Austin Wise - Typemock Isolator 9.3.3: Embracing .NET 9 and C# 13 with AI Testing Capabilities
Eli Lopian - Choosing the Best Mapping Library for Your .NET Core Project
Muthukumar Thevar - C# Advent: No one loves the .NET Core name anymore
Stephen Cleary - Metadata Consulting [dot] ca: Get the number of columns in an HTML Table using Regex
Metadata Consulting

Es lunes, así que vamos a por los enlaces interesantes de la semana. Quizás algo más escasos que otras veces, probablemente debido a la festividad de acción de gracias del otro lado del charco, pero aún así tenemos una buena colección 🙂
Esta semana, me ha llamado la atención a una interesante pregunta: ¿cuánta memoria necesitarías para ejecutar un millón de tareas concurrentes? Así a ojo es imposible saberlo, pero hay quien ha hecho la prueba con muchos lenguajes, y vemos que C# no sale nada mal parado.
También es un must read el post "¿Y qué trae de nuevo Angular 19?", donde Jose Manuel Alarcón se ha tomado la molestia de recopilar todas las novedades y explicarlas con gran detalle.
Por último, mi descubrimiento de la semana: los bloques de alertas en Markdown. Markdown es mi formato favorito para escribir un montón de cosas (entre otras, los posts de este blog) y era algo que desconocía y me ha parecido bastante interesante y práctico.
Y ahora, a por el resto de enlaces. ¡Espero que los disfrutes! 😊
Por si te lo perdiste...
- Usar dos claves distintas para buscar en un diccionario de .NET
José M. Aguilar - Ramificar el pipeline de ASP.NET Core con Map() y MapWhen()
José M. Aguilar
.NET Core / .NET
- Introducing Microsoft.Extensions.VectorData Preview
Sarosh Wadia - How to Create SVG Files Programmatically in C# .NET
Paarisha Rana - Fire-and-Forget Methods in C# — Best Practices & Pitfalls
Syed Shahriyar - What's new in .NET 9? Key features you need to know!
David Grace - How to Create Command Line Console Applications in .NET
Anton Martyniuk - How to Schedule and Automate C# .NET Reports
Alec Gall - C# 12.0: inline arrays
Ian Griffiths - Checking whether a URI refers to a Web site root
Raymond Chen - idunno.Bluesky: A .NET class library for the the Bluesky social network
Barry Dorrans