Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Ojo a los antipatrones
José María Aguilar - Cómo implementar view-models de componentes Blazor en clases code-behind
José María Aguilar
.NET Core / .NET
- Rop.ProxyGenerator: Source Generator to create ProxyClasses
Ramón Ordiales - Async Enumerable in C# (Part 2)
Mark Heath - AlterNats — High Performance .NET
Yoshifumi Kawai - Ternary Operator ? : in C#
Code Maze - Merging concurrent IAsyncEnumerable<T> operations for increased performance
Stefan Schranz - ZString — Zero Allocation StringBuilder for .NET Core and Unity.
Yoshifumi Kawai - How to Use Span in C# to Improve Application Performance
Code Maze - High performance .NET: Building a Redis Clone – skipping strings
Oren Eini - Faster Guid comparisons using Vectors (SIMD) in .NET
Gérald Barré - Using Refit to Consume APIs in C#
Code Maze - Azure AD OAuth client credential flow with custom certificate walk-through
Nicola Delfino - Nondestructive Mutation and Records in C#
Zoran Horvat - Running .NET Core Applications as a Windows Service
Muhammed Saleem - C# vNext - What could come
Steven Giesel - Comparison of FFT Implementations for .NET
Christian Woltering - Challenge: Find the stack smash bug… – answer
Oren Eini - .NET Debugging Tips
Tim Deschryver - Leveraging trimming to make the Microsoft Store faster and reduce its binary size
Sergio Pedri
Publicado por José M. Aguilar a las 8:47 a. m.
Etiquetas: enlaces
Como sabemos, ASP.NET Core viene configurado "de serie" para que el middleware que sirve los archivos estáticos (StaticFilesMiddleware
) los obtenga desde la carpeta wwwroot
. Y ya vimos hace bastante tiempo que si preferíamos utilizar otro nombre para guardar estos archivos, podíamos hacerlo con cierta facilidad.
Pero como a partir de ASP.NET Core 6 el nuevo modelo de configuración cambió varias piezas de sitio, es bueno volver a echar un vistazo y ver cómo podríamos hacerlo en las últimas versiones del framework.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Desinstala fácilmente versiones antiguas de .NET Core con "dotnet-core-uninstall"
José María Aguilar - Saber si una cadena está vacía usando métodos de extensión (C#/VB.Net)
José María Aguilar
.NET Core / .NET
- Benchmarking to the Bottom — Iterating Arrays in .NET
Stephen Walsh - Improving .NET host error messages and supportability
Richard Lander - Async Enumerable in C# (Part 1)
Mark Heath - How to Implement Retry Logic in C#
Code Maze - Implement IXmlSerializable in a readonly struct
Fons Sonnemans - C# 11 - Top 5 Features in the new C# Version
Nikola M. Zivkovic - Consuming anonymous types with DiagnosticListener in .NET 6
Andrew Lock - High performance .NET: Building a Redis Clone– the wrong optimization path
Oren Eini - How to Call Generic Method Using Reflection in C#
Ahsan Ullah - How to improve Serilog logging in .NET 6 by using Scopes
Davide Bellone - Wrap Event based functions into awaitable Tasks
Steven Giesel - Observing all HTTP requests in a .NET application
Gérald Barré - Write Test Progress To The Console With NUnit
Dawid Sibiński - Speed Up Logging in .NET 6
David McCarter - Using records when implementing the builder pattern in C#
Josef Ottosson

De casualidad me he topado con un interesante cambio que .NET 5 introdujo en los componentes de serialización y deserialización System.Text.Json
y que, al menos para mí, pasó totalmente desapercibido en su momento. Por eso, he pensado que quizás sea buena idea dejarlo por aquí, por si hay algún despistado más al que pueda resultar útil.
Como seguro sabéis, al usar los componentes de System.Text.Json
para serializar o deserializar una clase, utilizamos el atributo [JsonIgnore]
para marcar las propiedades que queremos que sean ignoradas al convertir desde y hacia JSON.
Por ejemplo, dada la siguiente clase:
class User
{
public int Id { get; set; }
public string Email { get; set; }
[JsonIgnore]
public string Token { get; set; }
}
En ella estamos indicando expresamente que la propiedad Token
debe ser ignorada, por lo que ésta no aparecerá si serializamos un objeto a JSON:
var user = new User { Id = 42, Email = "john@server.com", Token = "ABCDEF"};
Console.WriteLine(JsonSerializer.Serialize(user));
// Result:
{"Id":42,"Email":"john@server.com"}
Y lo mismo ocurre en sentido contrario:
var jsonStr = "{ \"Id\": 42, \"Email\": \"john@server.com\", \"Token\": \"ABCDEF\"}";
var user = JsonSerializer.Deserialize<User>(jsonStr);
// ¡user.Token es nulo aquí!
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- 101 citas célebres del mundo de la informática
José María Aguilar - ¿Usar try/catch es malo para el rendimiento? Spoiler: no, siempre que nada falle
José María Aguilar
.NET Core / .NET
- Announcing .NET 7 Preview 5
Angelos Petropoulos - OneService Journey to .NET 6
Dominic Nguyen - Introduction to Regular Expressions in C#
Code Maze - High performance .NET: Building a Redis Clone–separation of computation & I/O Oren Eini
- The Perils of Combining Multicast Delegates with Tasks in C#
Liam Mooney - (Re) Introducing Jasper as a Command Bus
Jeremy D. Miller - What is the difference between C#, .NET, IL and JIT?
Steven Giesel - Creating, Inspecting and Decompiling the World's (Nearly) Smallest C# Program
Steve Gordon - C# 11 static abstract members
Patrick Smacchia - goto in action - The exception from the rule
Steven Giesel - C#: IEnumerable, yield return, and lazy evaluation
Isaac Lyman - C# Warning Waves Hint at New Keywords in the Future
Jonathan Allen - Clean up some .NET Clutter
Joseph Guadagno - Should I avoid LINQ for performance reasons?
Mark Heath

Visual Studio sigue introduciendo novedades versión tras versión, y es fácil que algunas de ellas nos pasen desapercibidas y tardemos algún tiempo en conocerlas, o incluso en verles la utilidad. Un ejemplo lo tenemos en los breakpoints temporales y dependientes, dos nuevos tipos de puntos de interrupción añadidos en la versión 2022 que pueden venirnos bien a la hora de depurar aplicaciones.
En este post vamos a echarles un vistazo, por si hay algún despistado más que no se haya dado cuenta de estas novedades.