Pues nos vamos de Semana Santa con unos cuantos enlaces interesantes para entretenernos durante las vacaciones, en caso de haberlas 😎
Y como siempre me gusta destacar algunos, comencemos por Mark Seemann, que trata un tema algo controvertido, pero interesante: si usamos agentes IA para generar nuestro código sin supervisión, ¿quién es responsable de ese código? ¿podríamos ir a prisión por un código generado por una IA? Spoiler: ándate con cuidado, por si acaso.
José Manuel Alarcón nos cuenta esta semana qué son los proyectos greenfield y brownfield, términos usados últimamente con mucha frecuencia. Y de paso, también nos envía una llamada de atención sobre el cambio de política de datos de GitHub, que les permitirá en poco tiempo utilizar nuestro código para entrenar a sus modelos de IA, y nos cuenta cómo evitarlo.
Daniel Rosenwasser ha anunciado TypeScript 6.0, la última versión del lenguaje antes de dar el esperado salto a Go, previsto para TypeScript 7.0. En esta nueva versión se han incluido mejoras en el lenguaje y el sistema de tipos y soporte para nuevas APIs.
Nick Cosentino nos lleva a las bases explicando las diferencias entre el patrón Singleton y las clases estáticas en C# y cuándo deberíamos usarlas.
Y la frikada de la semana la encontramos en el blog de Chema Alonso, que nos cuenta cómo es posible guardar, descargar y ejecutar el juego Doom desde el DNS de Cloudflare.
El resto de enlaces a contenidos que no puedes perderte, a continuación.
Por si te lo perdiste...
- Forzar casts imposibles con C#
José M. Aguilar - Constructores con parámetros en entidades EF Core
José M. Aguilar
.NET
- Feature Flags en .NET: Controla tu Código Sin Hacer Deploy
Gerson Azabache Martínez - Singleton vs Static Class in C#: Key Differences Explained
Nick Cosentino - SOLID Principles in C#: Beginner Guide with .NET Examples
Dirk Strauss - Speed Up .NET CI with Test Sharding
Gérald Barré - C# Tip: How to JSON Serialize and Deserialize values as DateTime, DateTimeOffset, DateOnly and TimeOnly
Davide Bellone - Introducing NtpTick: A lightweight NTP client for .NET
Jiří Činčura - Improving .NET Security Code with C# 14 Property Extensions
Wesley Cabus - Build an AI-Powered Excel Translator in C# Using OpenAI and XlsIO
Mohan Chandran - Compile-Time options validation with the OptionsValidator source generator
Bart Wullems - Generating Structured Code Using Azure, OpenAI and .NET
Ricardo Peres
ASP.NET Core / ASP.NET / Blazor
- Versionamiento de APIs: conceptos, estrategias y trade-offs & Versionamiento de APIs en .NET: guía práctica de implementación
Gerson Azabache Martínez - Designing business rules that don't leak into controllers
Ali Hamza Ansari - Privacy Health Checks: Beyond Database Connectivity
Martin Stühmer - ASP.NET Core Output Cache: How to Speed Up Your API with In-Memory Cache and Redis
Anton Martyniuk - Top 3 Errores comunes al hacer APIs en .NET (y cómo evitarlos)
Gerson Azabache Martínez - Scaling SignalR With a Redis Backplane
Milan Jovanović - Announcing Aspire 13.2
Maddy Montaquila - A Simple .NET CLI Web Server
Bryan Hogan - Build an ASP.NET Core AI Assistant API with GitHub Copilot SDK in C#
Nick Cosentino - What’s New for Blazor in .NET 11 Preview Releases 1 and 2
Jon Hilton
Azure / Cloud
- Aspire on Azure App Service is now Generally Available
Tulika Chaudharie
Conceptos / Patrones / Buenas prácticas
- What Are WebSockets and How Are They Different From HTTP?
Liz Acosta - Stop Deploying Garbage to Production
Martin Stühmer
Data
- Composite Index SQL: How to Improve Query Speed
Deepak Vohra - CPU percentage vs SQL instance CPU percent: The Portal’s Favorite Misunderstanding
Shaurya Singh - How to Work With Dapper in .Net
Grant Riordan
Machine learning / IA
- Cuando la IA intenta arreglar el mismo bug diez veces… el problema ya no es el bug
Alberto Díaz Martín - Tips y buenas prácticas usando IA
Juan Irigoyen - Ten Months with Copilot Coding Agent in dotnet/runtime
Ron Darziv - Will you go to prison for an AI?
Mark Seemann - Stop Wasting Tokens: Smart Tool Routing for LLMs with MCPToolRouter
Bruno Capuano
Web / HTML / CSS / Javascript / Design
- Announcing TypeScript 6.0
Erkan Okman - Redux vs Zustand: Choosing the Right React State Manager
Manikanda Akash Munisamy - Experimenting With Scroll-Driven corner-shape Animations
Daniel Schwarz - Two Circles, One Arrow, and Anchor Positioning
Temani Afif - Shadow DOM Focus Delegation: Getting delegatesFocus Right
Rob Levin - Testing Font Scaling For Accessibility With Figma Variables
Ruben Ferreira Duarte - Contravariance on TypeScript Function Parameters
Dhananjay Kumar
Visual Studio / Complementos / Herramientas
- ¿Tu IA aprende de ti?: Cómo evitar que GitHub Copilot use tu código para entrenar a sus modelos
José Manuel Alarcón - Dependabot te dice que es vulnerable… ¿pero es explotable de verdad?
Gisela Torres - ReSharper 2026.1 Release Candidate Released!
Sasha Ivanova - Essential Studio UI Edition Now Available For Dev Essentials Subscribers & Essential Studio Enterprise Edition Now Available For Select Visual Studio Enterprise and Professional Subscribers
Meena Alagiah - Visual Studio Shortcuts: Complete Guide to Coding Faster
Dirk Strauss - Resolve Merge Conflicts the Easy Way
Phil Haack - Windows: Choose Where To Get Apps
Eric Lawrence
Otros
- ¿Qué son los proyectos greenfield y brownfield en software (y por qué se oyen tanto, también en España)?
José Manuel Alarcón - Doom over DNS: O cómo guardar, descargar y ejecutar Doom desde el DNS (de Cloudflare)
Chema Alonso - Windows 95 defenses against installers that overwrite a file with an older version
Raymond Chen - A quarter of a billion NuGet downloads
Mattias Karlsson
Publicado en Variable not found.


Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario