ASP.NET Core 2.2 First Look – Endpoint Routing (aka Dispatcher)
The first preview of ASP.NET Core 2.2 is due (very) soon and it will be our first chance to test the changes and new features which are expected to be released by the end of this year. ASP.NET Core 2.2...
View ArticleRunning AWS DynamoDB Locally for .NET Core Developers
For a recent set of .NET Core based microservices I have found myself using AWS DynamoDB as a data store. I recently discovered that AWS provides (and have done for 5 years!) a local version of...
View ArticlePassing an ILogger to Polly Policies
In a previous post, I looked at how we could use the Polly context to obtain a retry count after policy execution. In this post, I want to explore a similar requirement that can also be solved by using...
View ArticleASP.NET Core 2.2 – Options Validation
I was listening to this week’s ASP.NET Community Standup and during the introduction, Jon Galloway shared Andrew Lock’s blog post, “Delaying strongly-typed options configuration using PostConfigure in...
View ArticlePublishing to AWS Simple Notification Service (SNS) from ASP.NET Core
In this post, I’ll demonstrate how to publish a message to AWS Simple Notification Service from an ASP.NET Core application. The same steps will work just as easily from a .NET Core generic host based...
View ArticleRunning AWS S3 (Simple Storage Service) Locally for .NET Core Developers
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...
View ArticleMotivations for Writing High-Performance C# Code
This post marks the beginning of what I expect will be a fairly long series of performance related posts. I’ll use this post as of a table of contents for accessing those future posts as well as to...
View ArticleIntroduction to Benchmarking C# Code with Benchmark .NET
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...
View ArticleHttpClient Creation and Disposal Internals: Should I Dispose of HttpClient?
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...
View ArticleAn Introduction to Optimising Code Using Span
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...
View ArticleAn Early Look at gRPC and ASP.NET Core 3.0
In this post, I want to introduce my very early experience (after a few hours of experimentation) of gRPC and ASP.NET Core 3.0. I’ve conducted some experiments as part of our quarterly Madgex hack day....
View ArticleCampaigning for a .NET Foundation Board Seat
Please excuse me for interrupting the normally educational and generally technical .NET content for a short announcement! I’m running for a seat on the board of directors of the .NET Foundation!!! It...
View ArticleDemystifying HttpClient Internals
I’ve written a few blog posts about HttpClientFactory and HttpClient and these are proving popular topics. There exists some confusion about how HttpClient should be used and there is a degree of...
View ArticleDemystifying HttpClient Internals: HttpRequestMessage
Anyone who regularly works with HttpClient will have likely have also used the HttpRequestMessage class. While HttpClient supports some convenience methods for quick actions such as sending a GET...
View ArticleDemystifying HttpClient Internals: HttpResponseMessage
In the previous post in my demystifying HttpClient series, I looked at the internals of HttpRequestMessage. I want to continue the series by investigating the HttpResponseMessage. This class is mostly...
View ArticleCreating Strings with No Allocation Overhead Using String.Create
In this post, I’ll continue my series about writing high-performance C# and .NET code. This time, I will focus on a new(ish) method available on the String type – String.Create. First introduced in...
View ArticleProfiling .NET Core Memory Traffic using JetBrains dotMemory
In this post, I will continue my journey into writing high-performance C# and .NET Core code by taking a look at a benchmarking challenge I recently encountered. While writing some sample code for an...
View ArticleInterpreting the .NET Core Memory Timeline in JetBrains dotMemory
In my last post, which is part of my ‘Writing High-Performance C# and .NET Code‘ series, we looked at how dotMemory can be used to view the amount of memory allocated by code in an application using...
View ArticleAnalysing the Large Object Heap in JetBrains dotMemory
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,...
View ArticleUsing High-Performance Techniques to Base64 Encode a GUID
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...
View Article