C# Source Generators: How to get build information?
A tutorial on using C# Source Generators to automatically embed build information like timestamp and configuration into your code during compilation.
A tutorial on using C# Source Generators to automatically embed build information like timestamp and configuration into your code during compilation.
Learn how to use the C# 'is not' operator with exception filtering to write cleaner and more maintainable error handling code.
Explores implementing pattern matching in Python using predicates and combinators, detailing custom MatchResult types and pattern semantics.
A guide to implementing in-memory caching in .NET using IMemoryCache to improve application performance and reduce database calls.
Explains the Skip and Take methods in C# LINQ for implementing pagination and limiting query results.
A critical analysis of the 'architect' role in software engineering, exploring its common anti-patterns and organizational dysfunction.
A developer argues for minimal, strategic code commenting, using examples to show how clear naming and structure can often replace verbose comments.
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.
Argues that deploys and releases are distinct concepts and that relying on deploys to change user experience is problematic.
Explores the Liskov Substitution Principle using the classic 'Is a square a rectangle?' example in object-oriented programming.
Part 3 of a series on writing a .NET profiler in C#, focusing on creating a source generator to automate boilerplate code for the profiling API.
Explains the Humble Object design pattern for separating hard-to-test dependencies from core logic to improve unit testing in software development.
Compares performance of C# collection types like List<T>, ReadOnlyCollection<T>, ImmutableArray<T>, and ImmutableList<T> in iteration benchmarks.
Explores the shift from the traditional testing pyramid to a testing diamond model, emphasizing more integration tests for modern architectures.
Tips for improving iOS share sheet UX using UIActivityItemSource and LPLinkMetadata for better previews and data control.
How to embed Git version information like commit hash and tags directly into C# code using the GitInfo source generator library.
Explains the error NETSDK1194 in .NET builds, why it occurs with recent SDK updates, and how to address it.
Analyzes a performance quirk in C#'s JsonSerializer when creating new JsonSerializerOptions instances, showing significant memory and speed penalties.
Explains what middleware is in ASP.NET Core, its role in the request pipeline, and provides a practical implementation example.