An Introduction to Optimising Code Using Span<T> Writing High-Performance C# and .NET Code: Part 3

This post continues my series about writing high-performance C# code. In this post, we’ll continue from the last two posts by introducing the Span<T> type and refactor some existing code by converting it to a Span-based version. We’ll use Benchmark.NET to compare the methods and validate whether our changes have improved the code. If you […]

Read More

HttpClient Creation and Disposal Internals: Should I Dispose of HttpClient? .NET Core Internals - Under the Hood of HttpClient and HttpClientFactory

A common question that I get asked quite often and a point of reasonable confusion for developers is “Should I dispose of HttpClient or not?” There isn’t one yes or no answer to this. It really does depend on a few key factors. In this post, I’ll try to answer this question with enough code snippets […]

Read More

Introduction to Benchmarking C# Code with Benchmark .NET Writing High-Performance C# and .NET Code: Part 2

In my previous post, I introduced this series in which I’ll share my experiences while learning about the new performance features in C# and the .NET Core (corefx) framework. In this post, I want to focus on benchmarking existing code and establishing baselines. Why Benchmark Code? The reason that I’ve started with benchmarking is that […]

Read More

Running AWS S3 (Simple Storage Service) Locally for .NET Core Developers Configuring an ASP.NET Core application to use a local S3 Docker container

In a previous post, I described how to run AWS DynamoDb locally using the AWS supplied docker image. I’ve recently been doing some work where I’m benchmarking code that works against AWS services. For example, I’m working to optimise speed and reduce allocations when downloading and parsing a file from AWS S3. I was curious […]

Read More