Why is `async void` Wrong and What To Do Instead?
Explains the pitfalls of using `async void` in C# and provides safer alternatives for asynchronous programming.
Explains the pitfalls of using `async void` in C# and provides safer alternatives for asynchronous programming.
A technical tutorial on setting up the Valhalla routing engine to generate isochrone maps using OpenStreetMap data and QGIS.
A review and guide to NDepend, a static code analysis tool for .NET, covering its features, setup, and use for improving code quality.
A visual guide explaining core LINQ functions in C#/.NET with sketches and examples, including Select, Where, Aggregate, and more.
Explains the Mediator pattern and CQRS, demonstrating their implementation and benefits in a C# application using MediatR.
Explains C# logging source code generators in .NET 6, detailing their benefits and usage for efficient, structured logging.
Explains why function pointers fail with instance methods and large structs in C#, detailing a stack corruption issue.
Explores writing a .NET profiler in C# using NativeAOT to overcome traditional C++ limitations and self-profiling issues.
Explains the difference between abstract classes and interfaces in C# using real-world analogies like animals and ATMs.
A detailed guide to SOLID principles in C#, explaining each principle with code examples to improve code readability, maintainability, and flexibility.
Explores potential future features for the C# programming language, including compound assignments in object initializers and discriminated unions.
A guide to using Directory.Build.props to create a central NuGet package store for managing dependencies in a UNO Platform .NET 6 application.
Explains when Blazor components automatically re-render and common pitfalls to avoid, focusing on StateHasChanged, async methods, and lifecycle events.
Explains how to use TaskCompletionSource in .NET to convert event-based APIs into awaitable tasks, with examples for timers and error handling.
Explores valid use cases for the 'goto' keyword in C#, challenging its reputation as universally bad practice.
Explains the differences between C#, .NET, IL, and the JIT compiler, detailing their roles in the .NET development stack.
Explains C# delegates, including Action, Func, Predicate, and lambda expressions, and how they are used to pass methods.
Lists the top nine essential technical skills for a successful .NET developer, including C#, ASP.NET MVC, and database knowledge.
Explains the .NET Garbage Collector's compacting phase, its performance benefits, and the Large Object Heap (LOH).
Explains the ObjectPool pattern in C# for performance optimization, showing how to reuse expensive objects to reduce garbage collection overhead.