Seguimos hablando de problemas que es habitual solucionarlos de una determinada manera, quizás por costumbre, quizás por pereza, o tal vez por desconocimiento de que haya otras formas de hacerlo. En este caso, hablaremos de una necesidad que probablemente habréis tenido alguna vez: transformar un GUID a una cadena de caracteres eliminando los habituales guiones.
Es decir, dado un GUID con el valor 1f5772a6-91ca-4035-8b6d-9676ec6d0eaa
, queremos obtener su representación como cadena de caracteres, pero eliminando los guiones, resultando "1f5772a691ca40358b6d9676ec6d0eaa"
.
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: .net, optimización, trucos
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Atajo para instanciar tipos anónimos en C# y VB.NET
José María Aguilar - Error 404 cargando páginas Blazor Server con parámetros que contienen un punto
José María Aguilar
.NET Core / .NET
- Cómo corregir una Null Reference Exception
Fernando Escolar - Head and Tail using list patterns in C#
Jiří Činčura - Find total number of ways to reach the n’th stair from the bottom in C#
Dot Net Office - How to modernize a legacy .NET Framework WCF app using CoreWCF and .NET 7
Carlos Pons - Realistic Data Generation in .NET With Bogus
Marko Hrnčić - CSharp dotNET How to remove ASCII Control Characters fast and reduce to ASCII set
Metadataconsulting - Which collection interface to use?
Vladimir Khorikov - Programming SVGs with C#
Khalid Abuhakmeh - Static libraries
Eric Sink - C# 11.0: Generic Math, C# Operators and Static Abstract/Virtual Interface Members
Thomas Claudius Huber - Performance: The Fastest Way to Loop Over an Array in Microsoft .NET
David McCarter - Understanding and Using the ‘Unchecked’ Keyword in C#
Ahmet Burhan Simsek - Using Command Binding in Windows Forms apps to go Cross-Platform
Klaus Loeffelmann - C# Lowering
Steven Giesel - 9 Tips to Reduce WPF App Startup Time
Andrey Slabov - Check If a String Array Contains a Value and Get Index
Code Maze
Ahí van los enlaces recopilados durante una griposa y febril semana pasada. Así que espero que os resulten especialmente interesantes. ;-)
Por si te lo perdiste...
- Detectar la prerenderización en Blazor
José María Aguilar - Cómo crear un traceroute con .NET, paso a paso (y II)
José María Aguilar
.NET Core / .NET
- Announcing .NET Community Toolkit 8.1! Better, faster MVVM source generators, .NET 7 support, and more!
Sergio Pedri - Convert GUIDs to a Shorter Textual Representation and Back
Roland Weigelt - .NET 7 Brings Networking Improvements
Edin Kapic - Understanding PLINQ in .NET
Marco Luzzara - Checking for Overflow in C#
Jeremy Clark - C# 12: Primary Constructors
Steven Giesel - Deconstruction in C#
Patrick Smacchia - Property based testing in C#–Part 2
Bart Wullems
Desde la llegada de ASP.NET Core, hace ya algunos años, muchos hemos echado de menos el filtro [OutputCache]
de ASP.NET MVC "clásico". Aunque el nuevo framework ofrece alternativas interesantes para gestionar la caché tanto en el lado cliente como en el servidor, ninguna aportaba las funcionalidades que este filtro nos ofrecía.
Como recordaréis, a diferencia de las opciones ofrecidas actualmente por ASP.NET Core, como el filtro [ResponseCache]
o el middleware ResponseCaching
, que básicamente se regían por los encabezados presentes en peticiones y respuestas HTTP, el filtro [OutputCache]
es una solución de caché residente exclusivamente en el servidor. En este caso, la decisión de si el resultado a una petición se almacena o no se realiza completamente desde la aplicación, de forma totalmente independiente a encabezados o requisitos procedentes del lado cliente.
En ASP.NET Core 7 este filtro ha vuelto a la vida en forma de middleware, que ofrece sus funcionalidades con dos sabores distintos:
- Con anotaciones aplicables a endpoints implementados con Minimal API.
- Como filtro, aplicable a controladores y acciones MVC.
Echémosles un vistazo.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Crear un traceroute con .NET, paso a paso (I)
José María Aguilar - Cómo personalizar los mensajes de error de conexión en Blazor Server
José María Aguilar
.NET Core / .NET
- No, No, No - Tasks are not threads and they are not for performance!
Steven Giesel - Detecting breaking changes between two versions of a NuGet package at packaging time
Gérald Barré - How to Iterate Over JSON Objects in C#
Code Maze - Deserialize Mastodon User XML RSS feeds with .NET
Khalid Abuhakmeh - LINQ for beginners: pick the right methods!
Davide Bellone - Rebus in .NET - Service Bus Implementation
Phil Broderick - Lazy and once-only C# async initialization
Ian Griffiths - Making an Asynchronous Breakfast in .NET
Assis Zang - 5 new advanced features improving C# 11
Tom Deseyn - Cryptography Implementations in .NET
Alvaro Montoya - Getting rid of warnings with nullable reference types and JSON object models in C#
Maarten Balliauw - Profiling .NET on Linux with BenchmarkDotNet
Adam Sitnik
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Las 10 cosas que más fastidian a los programadores
José María Aguilar - Valores y parámetros en cascada con Blazor
José María Aguilar
.NET Core / .NET
- Understanding Task and ValueTask in C#
Code Maze - Give your strings context with StringSyntaxAttribute
Steven Giesel - ConcurrentBag in C#
Code Maze - Adding NuGet packages when offline
Mark Seemann - Challenge: what does this code print? & The answer
Oren Eini - C# 11 List Patterns - Create compatible types
Gérald Barré - .NET Tips and Tricks & ValueStringBuilder
Steven Giesel - OpenTelemetry in .NET - Basic Usage With Examples
Phil Broderick - ReadOnlySpan<char> and strings
Steven Giesel - How to Use Change Tokens in .NET 7?
Goker Akce - Why tuples in C# are not always a code smell
Dennis Frühauff - Automating Integration Tests using the “Critter Stack”
Jeremy D. Miller - Avoiding Primitive Obsession in .NET
Assis Zang