Use Attributes & Middleware in ASP.NET Core for Logging, Telemetry, and Anything Else

Every once in a while you need to add telemetry, logging, or metrics. While necessary, writing this code along with the business logic feels kind of wrong. In these cases, you can utilize attributes and ASP.NET Core middleware.

How I Self-Published a Programming Book and Lived to Tell About It

About a month ago I released my first book. Besides the actual writing, there are a ton of things involved in publishing a book. There’s the book cover, editing, book formatting, publishing to a marketplace, creating a landing page, and promoting the book. I’ll tell you how I did all those things for better or worse.

Assembly Versioning and DLL Hell in C# .NET Framework: Problems and Solutions

In this article, we'll talk about what exactly is DLL Hell, how these kinds of problems can occur, and the best ways to dealing with them.

5 Productivity Tips in Visual Studio That You Should Know

If you're like me, then you're addicted to productivity tools. That's one of the reasons why I love Visual Studio—it has an endless amount of productivity tricks. This post is going to show five such tricks that help in my work every day.

Practical Debugging for .NET Developers is Available!

For almost a year now, I’ve been writing a book about debugging and problem-solving in .NET. I’m pretty upset at whoever said writing a book is just like writing a series of blog posts. That was way more work than I signed up for. But it’s over now and my book Practical Debugging for .NET Developers is available. This book is all about solving bugs. I daresay say that the ability to solve difficult problems is what differentiates great engineers from good engineers.

5 Tricks You Should Know About Visual Studio’s Immediate Window

The Immediate Window looks pretty straightforward, but it hides some cool features. In this post, I’ll show you five tricks you can use with this window that you absolutely should know if you want to debug faster.

Understanding How Assemblies Load in C# .NET

We are constantly dealing with libraries and NuGet packages. These libraries depend on other popular libraries and there are a lot of shared dependencies. With a large enough web of dependencies, you'll eventually get into conflicts or hard situations. The best way to deal with such issues is to understand how the mechanism works internally.

Demystifying Memory Profilers in C# .NET Part 3: Memory Pressure

In this article, we'll see how GC activity can cause major performance problems. This phenomenon is called Memory Pressure and we'll see how to deal with it using memory profilers.

Demystifying Memory Profilers in C# .NET Part 2: Memory Leaks

Memory leaks are very common, hard to notice, and eventually, lead to devastating consequences. The main tool to detect and fix memory leaks is a Memory Profiler. In fact, I believe the most common usage of memory profilers in .NET is exactly for the purpose of fixing memory leaks. In this article, you'll see exactly how to use memory profilers to find the leaky objects, why they are still referenced, and how to solve the problem.