Demystifying Memory Profilers in C# .NET Part 1: The Principles

Demystifying Memory Profilers in C# .NET Part 1: The Principles

Memory leaks and GC Pressure cause pretty inconvenient effects like out-of-memory crashes, performance problems, and high memory consumption. Our primary tools when dealing with those issues are memory profilers. They are one of the most important category of tools in .NET troubleshooting, and in this article, you'll see how to use them and extract the most information from them.

Continuous Delivery with Feature Flags (toggles) is More Difficult Than it Seems

Continuous Delivery with Feature Flags (toggles) is More Difficult Than it Seems

What happens if you’re working on something that lasts much more than one sprint? Maybe 3 sprints or 10. Are you going to work on a separate branch, ending with a huge merge? Are you going to run automated tests on that branch? This matter is not that simple, as I recently experienced.

Is C# Slower Than C++?

Is C# Slower Than C++?

Is C# slower than C++? That's a pretty big question. As a junior developer, I was sure that the answer is "Yes, definitely". Now that I'm more experienced, I know that this question is not obvious and even quite complicated.

10 Essential Debugging Tools for C# .NET Development

10 Essential Debugging Tools for C# .NET Development

When it comes to debugging software, tools are extremely important. Get the right tool and you extract the right information. Get the right information and you can find the root cause of the issue. Find the root cause and you've solved the bug.

C# to C# Communication: REST, gRPC and everything in between

C# to C# Communication: REST, gRPC and everything in between

There are many ways to communicate between a C# client and a C# server. Some are robust, others not so much. Some are very fast, others aren't. It's important to know the different options so you can decide what's best for you.

Debugging ASP.NET Web Request Failures: The Complete Guide

Debugging ASP.NET Web Request Failures: The Complete Guide

You’re sending an HTTP request to your ASP.NET server, and out of the blue, it returns a 500 error. Now what? The error code doesn’t say too much by itself. Did a database request fail? Was there an exception? In this article we'll see how to get the most information on the error.

Debugging 3rd Party .NET Code without symbols in Visual Studio

Debugging 3rd Party .NET Code without symbols in Visual Studio

It's not so rare to see weird things happen in 3rd party library code. Call some method and you've got a strange exception. Or an incorrect behavior or even a process crash. It sure would be nice to debug some of these issues. In this article we're going to do just that - You'll see how to debug 3rd party library code in Visual Studio.

OzCode Review and Black Friday 2019 Discount

OzCode Review and Black Friday 2019 Discount

You might have heard about OzCode before. It's an extension for Visual Studio. Like ReSharper, but with very different functionality. The single purpose of OzCode is to help you debug code and find the root cause of problems. In this blog post, I'm going to tell you about some amazing features in OzCode from my perspective and why you should try it out.

Debugging Lock Contention Performance Issues in C# .NET

Debugging Lock Contention Performance Issues in C# .NET

Lock contention is a state where one thread is waiting for another while trying to acquire a lock. Whatever time spent waiting for the lock is "lost" time that is wasted doing nothing and causes performance problems. In this article, you'll see how to detect lock contention problems, debug them, and find the core cause of the issue.