Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Evitar el postback al pulsar un botón en ASP.Net
José María Aguilar - Implementación de servicios gRPC con ASP.NET Core
José María Aguilar
.NET Core / .NET
- What’s up with TimeZoneInfo on .NET 6? (Part 2)
Jon Skeet - Using PowerPoint as a WYSIWIG Editor for HTML Templates (Proof of Concept in C#)
Roland Weigelt - Search videos through the YouTube Data API from C#
Thomas Ardal - Converting code to the new Regex Source Generator
Gérald Barré - Tracking down a hanging xUnit test in CI: building a custom Test Framework
Andrew Lock
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: enlaces
A veces, sobre todo en aplicaciones muy grandes, con las definiciones de rutas muy complejas o cuando nos toca analizar aplicaciones ajenas, puede ser interesante saber qué punto del código está procesando una petición determinada, ya sea un endpoint definido usando Endpoint Routing o Minimal APIs o bien sea una acción de un controlador MVC.
En este post vamos a ver cómo conseguirlo de forma muy sencilla, mediante la implementación un pequeño middleware que, insertado en el pipeline, añadirá en el encabezado información sobre el handler que generó la respuesta de la petición actual.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Otro uso para la arroba (@) en C#
José María Aguilar - Cómo hacer que Fiddler inicie sin capturar conexiones
José María Aguilar
.NET Core / .NET
- .NET type for personally identifiable information (PII)
Vladimir Gaevoy - Performance benefits of sealed class in .NET
Gérald Barré - Building a NuGet Packages Architecture Part 5 – Service Registration Methods
Imar Spaanjaars - How to prevent email HTML injection in C# and .NET
Niels Swimberghe - Creating a Windows Service with .NET 6
Christian Nagel - Just because you stopped waiting for it, doesn't mean the Task stopped running
Andrew Lock - Unit Tests For Legacy Systems with .NET 6
Khalid Abuhakmeh - Get ready for NativeAOT in .NET 7
Maourice Gonzalez - Building NServiceBus Metrics with OpenTelemetry and System.Diagnostics.Metrics
Jimmy Bogard - Remove Time from a DateTime Object in C#
Code Maze - How to use pub/sub in C# .NET to build a chat app
Marc Duiker - How segments and regions differ in decommitting memory in the .NET 7 GC
Maoni Stephens

Aunque no es algo frecuente ni especialmente recomendable, hay veces que tenemos que introducir en el código algún tipo de lógica, trazas o comprobaciones que solo queremos aplicar mientras depuramos o desarrollamos y, en ningún caso, queremos que vaya a producción.
En estos casos, aparte de anudarnos un lazo en el dedo mientras mantengamos estos cambios para asegurar la eliminación del código de pruebas antes de subir la aplicación a producción, otra idea puede ser utilizar directivas para que este código solo actúe mientras depuramos, o incluso para evitar la compilación exitosa en modo "Release" (el usado normalmente al publicar).
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Enumerables asíncronos en C# 8
José María Aguilar - Problemas al comentar el código fuente
José María Aguilar
.NET Core / .NET
- 5 mitos de .NET que todavía te crees (20 años después)
José Manuel Alarcón - Announcing .NET 7 Preview 2 - The New, 'New' Experience
Angelos Petropoulos - Why should you use a random testing library in C#?
Anthony Lloyd - UsedImplicitly on External Libraries
Phil Scott - Writing IL according to the specification
Dudi Keleti - A deep-dive into the new Task.WaitAsync() API in .NET 6
Andrew Lock - What’s New in C# 10: Create Constants Using String Interpolation
Jason Roberts - Finding the brightest area in an image with C# (fixing a blurry presentation video
Dan Roberts - Cancellation, Part 4: Polling
Stephen Cleary - Advanced parsing using Int.TryParse in C#
Davide Bellone - Polly with .NET 6, Part 4 - Dependency Injection of a HttpClientFactory and Policy into a Minimal API Endpoint
Bryan Hogan - A Mostly Complete Guide to C# 11’s Future Features
Matthew MacDonald - How to Deserialize a Complex JSON Object in C# .NET
Code Maze - How to use Google.Protobuf without code generation in C#
Mike Hadlow
En los tiempos de ASP.NET "clásico", cuando los settings de la aplicación los almacenábamos en el viejo Web.config
, cualquier intento de cambio de valores mientras ejecutábamos la aplicación era inevitablemente sinónimo de reinicio. Esto, aunque bastante molesto, tenía sentido porque el mismo archivo XML se utilizaba para almacenar tanto los valores de configuración "de negocio" como aspectos puramente técnicos o del comportamiento de la infraestructura de ASP.NET, y la aplicación debía reiniciarse para poder aplicarlos.
Con la llegada del sistema de settings de .NET Core esto mejoró bastante, introduciendo la posibilidad de almacenar valores en bastantes orígenes distintos (archivos .json
, .ini
, .xml
, variables de entorno, parámetros de línea de comandos, user secrets, diccionarios en memoria y muchos otros, incluso totalmente personalizados), y nuevas fórmulas para la obtención de éstos, como la inyección de dependencias, settings tipados y, por fin, la posibilidad de realizar cambios en caliente.