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

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

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.

Performance Profiling of .NET Core 3 applications on Linux with dotnet-trace and PerfView

Performance issues never seem to disappear from the world, no matter how fast new computers become. To deal with those issues we need proper tools. We have some great tools on Windows. On .NET Core with Linux, things are not so great. But they're getting better.

The Battle of C# to JSON Serializers in .NET Core 3

.NET Core 3 was recently released and brought with it a bunch of innovations, including a brand new JSON (de)serializer System.Text.Json. We're going to compare this serializer with Newtonsoft.Json and other major .NET serializers. Check out this epic performance battle.

Use Performance Counters in .NET to measure Memory, CPU, and Everything - Full Guide

There's an incredible built-in mechanism in Windows called Performance Counters that allows you to follow a whole lot of useful metrics. It's easy to use, comes free, and perhaps not used as much as it deserves. In this article, we'll see how to monitor performance counters with PerfMon, ...

Pipeline Implementations in C#: TPL Dataflow Async steps and Disruptor-net

In the 3rd part of the series we'll see how to create asynchronous steps in the pipeline with TPL Dataflow. We'll also see a new implementation using the Disruptor-net library.

Logging in C# .NET Modern-day Practices: The Complete Guide

Logging is a big part of software development for many years now. This guide is a bird's eye view of modern solutions for logging in .NET space.

Debug & Catch Exceptions in Visual Studio: The Complete Guide

One of the most important concepts in modern programming is Exceptions. They were introduced in the 60's with LISP and eventually made their way to practically all modern programming languages. This article is an extensive guide to dealing with exceptions in Visual Studio.