I’ve recently begun making use of a relatively new (well, it’s a little over a year old at the time of writing) feature called “Channels”. The current version number is 4.5.0 (with a 4.6.0 preview also available as pre-release) which makes it sound like it’s been around for a lot longer, but in fact, 4.5.0 […]
Getting Started with gRPC Client Factory
Regular visitors of my blog will know that I’ve written a lot of posts about the HttpClientFactory feature, available in the Microsoft.Extensions.Http package which simplifies the consumption and proper lifetime usage of HttpClient instances. Recently, I’ve begun digging into gRPC and I’m pleased to see a similar pattern is available for gRPC-based communication. In this […]
Using the BodyReader and BodyWriter in ASP.NET Core 3.0 Utilising System.IO.Pipelines for High-Performance ASP.NET Core 3.0
In this post, I will describe a scenario and potential use case for the BodyReader and BodyWriter properties which are now exposed in ASP.NET Core 3.0 via the HttpContext on the HttpRequest and HttpResponse respectively. Note, that I’m working with these during Preview 6 of the 3.0 release, so things may have changed a little […]
Using High-Performance Techniques to Base64 Encode a GUID Writing High-Performance C# and .NET Code: Part 8
It’s been a little while since my last high-performance post, but my use of the techniques and features continues! In this post, I want to present a more practical example which I hope will help to illustrate a real-world use case for some of the new .NET Core performance focused API changes. Scenario For a […]
Analysing the Large Object Heap in JetBrains dotMemory Writing High-Performance C# and .NET Code: Part 7
In my last post, which is part of my ‘Writing High-Performance C# and .NET Code‘ series, we looked at how we can begin interpreting some of the data from a dotMemory profiling session. In this post, we’ll continue the analysis by investigating why we saw that the Large Object Heap (LOH) size grows for about […]