The "Weak Event" Pattern in C#
Explains the memory leak issue with C# events and demonstrates how to implement the Weak Event pattern using weak references.
Explains the memory leak issue with C# events and demonstrates how to implement the Weak Event pattern using weak references.
A guide to implementing reusable feature flag checks in ASP.NET Minimal APIs using custom Endpoint Filters, moving logic out of route handlers.
Introducing MiniWord, an open-source .NET library for generating Word documents from templates using OpenXML and C#.
Introducing Sisk, a lightweight, open-source, and cross-platform alternative HTTP server for .NET, independent of ASP.NET Core.
Explains the advantages of creating custom fakes for unit testing in C#/.NET instead of relying on third-party mocking libraries like Moq.
A guide to using the EntityFramework.Exceptions library to handle specific database errors like constraint violations in Entity Framework.
A developer shares lesser-known Entity Framework features like AutoInclude and HasQueryFilter to improve code efficiency and avoid common pitfalls.
Learn how to add a Readme.md file to your NuGet packages to improve documentation and user onboarding on NuGet.org.
Explains the performance and readability benefits of ordering LINQ queries as Where.Select instead of Select.Where in C#.
Explains C# 12's new collection literals feature, a concise syntax for creating and merging collections and dictionaries.
Explains the internal workings of the .NET List<T> class, focusing on its dynamic array implementation, resizing behavior, and performance considerations.
How to use Hangfire's DisableConcurrentExecution attribute to prevent a recurring .NET background job from running if the previous instance is still active.
A guide to five practical C# extension methods for enhancing Task<T> operations, including fire-and-forget, retry, and timeout patterns.
A guide on creating a NuGet metapackage (a package that references other packages) using the .NET CLI, covering common pitfalls and solutions.
A tutorial on using C# Source Generators to automatically embed build information like timestamp and configuration into your code during compilation.
Explains how MongoDB stores DateTime in UTC and how to handle serialization/deserialization with C#, including using DateTimeOffset and custom serializers.
A guide on building an Azure Functions extension to read files from AWS S3, based on a talk at the Sydney Serverless Meetup.
A critical look at benchmarking in .NET, emphasizing the importance of context and real-world performance over isolated micro-optimizations.
A guide to validating database connection strings during .NET application startup using extension methods and configuration binding.
A guide to implementing structured logging in ASP.NET Core applications using the Serilog library, covering installation, configuration, and usage.