
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.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Saber si una cadena está vacía en C#
José María Aguilar - Switch expressions en C# 8
José María Aguilar
.NET Core / .NET
- Implementing a defaultable collection in C#
Steve Dunn - Building a gRPC Server in .NET
Sahan Serasinghe - QR Code Encoder and Decoder C# Class Library for VS 2022 .NET 6.0 (Version 3.0.0)
Uzi Granot - Polly with .NET 6, Part 3 - Dependency Injection of a Policy into a Minimal API Endpoint
Bryan Hogan - Executing code before Main in .NET
Gérald Barré - Cancelling await calls in .NET 6 with Task.WaitAsync()
Andrew Lock - Loop Around Index with C# Collections
Khalid Abuhakmeh - What’s the maximum number of arguments for method in C# and in .NET?
Jiří Činčura - Downloading and Pushing NuGet packages in C#
Mark Heath - .NET 4.x app running in a container using Docker
Gregor Suttie - Cancellation, Part 3: Detecting Cancellation
Stephen Cleary - Typemock Isolator dotnet core support
Alon Sapozhnikov
Pero aunque indudablemente los tipos booleanos o flags son una fórmula muy compacta para almacenar información, el mundo suele ser mucho más complejo y estas simplificaciones son a menudo origen de problemas y trampas para nuestro yo del futuro.
En este post vamos a ver algunos escenarios en los que este tipo de dato puede llegar a complicarnos la vida.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Implementación por defecto en interfaces de C#8, un primer vistazo
José María Aguilar - Enumeraciones de campos de bits en .NET
José María Aguilar
.NET Core / .NET
- Mapperly: A .NET source generator for generating object mappings Riok
- Reentrant (Recursive) Async Lock is Impossible in C#
Max Fedotov - Differences Between != And Is Not Operators in C#
Code Maze - Global usings in C# 10
Gunnar Peipman - Build your own simple browser with WebView2
Mark Heath - Modelling workflows with Finite State Machines in .NET
Lloyd Atkinson - Profiling a .NET6 app running in a linux container with dotnet-trace, dotnet-dump, dotnet-counters, dotnet-gcdump and Visual Studio
Carlos Pons - Enabling High-Quality Code in .NET
Milan Milanović - PriorityQueue In .NET 6
Vicente Gerardo Guzman Lucio - Difference Between Task.Run and Task.Factory.StartNew
Code Maze - 13 C# NuGet packages every .NET Developer needs to know!
Claudio Bernasconi - LED Ticker Tape with .NET
Jim Bennett - Cancellation, Part 2: Requesting Cancellation
Stephen Cleary - Understanding the .NET Language Integrated Query (LINQ)
Ioannis Kyriakidis - Classes, Structures, and Records, Oh My!
David McCarter