New ArgumentException and ArgumentOutOfRangeException helpers in .NET 8
Explores new ArgumentException helper methods proposed for .NET 8, including ThrowIfNullOrWhiteSpace and ThrowIfNullOrEmpty for collections.
Explores new ArgumentException helper methods proposed for .NET 8, including ThrowIfNullOrWhiteSpace and ThrowIfNullOrEmpty for collections.
Introducing an unofficial .NET SDK for creating GitHub Actions, making automation easier for C# developers.
Explores new code analyzers coming in .NET 8, focusing on performance improvements like case-insensitive string comparisons.
Explains the new FrozenSet and FrozenDictionary collections in .NET 8, detailing their performance benefits and differences from read-only and immutable collections.
Debunks the myth that StringBuilder is always faster in C#, showing scenarios where simple concatenation or List<string> is better.
Explains how to measure heap allocations in .NET and reveals that an empty array consumes 24 bytes due to object overhead.
A guide to using AutoFixture with xUnit to generate anonymous test data, making unit tests more robust and maintainable.
Explains how to use FluentAssertions' Assertion Scopes to see all test failures at once, improving debugging efficiency.
Explores the pitfalls of mutable value types in C#/.NET, explaining why they are often avoided and the performance reasons for their limited use.
Explains how to use .NET's ObsoleteAttribute and RequiresPreviewFeaturesAttribute to mark APIs as deprecated or experimental.
A collection of technical infographics covering .NET, C#, Entity Framework, exceptions, operators, and query safety.
Compares C# local functions and lambda expressions, highlighting key differences in recursion, yield usage, and performance.
Explains the difference between 'throw;' and 'throw exc;' in C#, focusing on how the latter truncates the stack trace.
An introduction to LiteDB, a lightweight, serverless NoSQL document database for .NET, exploring its features, use cases, and differences from SQL databases.
Explores two unconventional C# patterns: using foreach on integers and awaiting TimeSpans via extension methods.
A collection of C#/.NET programming infographics covering topics like ConfigureAwait, foreach index, struct mutations, null Tasks, and ThrowHelper.
Explores new low-level C# 11 features allowing ref fields in structs for high-performance scenarios like custom collections and frugal objects.
Explains the WebApplicationFactory in .NET for integration testing ASP.NET Core WebAPIs, highlighting its benefits and usage.
A developer explores transpiling JavaScript to C++ to compile to WebAssembly, sharing lessons from a proof-of-concept for running JS in Shopify Functions.
A collection of C#/.NET infographics explaining pure functions, generator functions, and the cost of anonymous types.