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.

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

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

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

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

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.