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.

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

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

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.

Visual Studio Debugging Windows: Watch, Locals, Autos, Immediate, Call Stack and Threads

Visual Studio Debugging Windows: Watch, Locals, Autos, Immediate, Call Stack and Threads

This tutorial is part of a series: Part 1 – Getting started with Visual Studio Debugging Part 2 – Visual Studio Debugging Tool Windows In the previous tutorial, we saw some of the basics of debugging in Visual Studio. This included Breakpoints, Navigation through code, and Investigating variables with the DataTip and QuickWatch. In this tutorial we will go over all the windows Visual Studio has for debugging.

Pipeline Pattern in C# (part 2) with TPL Dataflow

Pipeline Pattern in C# (part 2) with TPL Dataflow

In the First Part of the series, we talked about the Pipeline Pattern in programming, also known as the Pipes and Filters design pattern. In this part, we'll see how to implement such a pipeline with TPL Dataflow.

Pipeline Pattern Implementations in C# .NET - Part 1

Pipeline Pattern Implementations in C# .NET - Part 1

The Pipeline pattern is a powerful tool in programming. The idea is to chain a group of functions in a way that the output of each function is the input the next one. The concept is pretty similar to an assembly line where each step manipulates and prepares the product for the next step.