What I Write About…
Databases
Helpful posts about SQL Server, Merge Replication and how to tune your databases for maximum performance.
Programming
Mostly focusing on C# and JavaScript but I enjoy exploring other languages such as F# and Python.
Scripting
Automation is the key to productivity, I cover innovative solutions to everyday problems using automated scripts.
Web Development
I cover all aspects of web development with a particular focus on application architecture and security.

InWeb
Validating and Sanitising filenames in a Blazor WebAssembly app
Blazor WebAssembly is a fantastic framework for building rich client-side applications, almost entirely in C#. However, it comes with a few subtle quirks that can catch us developers off guard. One of the less obvious quirks to be aware of surfaces when you need to validate or sanitise a filename specified by a user; something…
Auto-Registering and injecting multiple Handler Interfaces in ASP.NET Core
When building ASP.NET Core applications, it is common practice to implement multiple classes that share a common interface, particularly when working with design patterns such as Chain of Responsibility or when dispatching work to a set of discrete handlers. A typical example of this might be a collection of INotificationHandler, ICommandHandler, or IEventHandler implementations that…
InAPIs
Updating YARP configuration at runtime
YARP (Yet Another Reverse Proxy) is a flexible .NET reverse proxy library that supports loading configuration from multiple custom sources and provides the means to reload its configuration at runtime; no app restart required. In my previous Configuring YARP Routes article, I covered the key route configuration scenarios that you will most likely need to…
InAPIs
Configuring YARP Routes
YARP (Yet Another Reverse Proxy) is a reverse proxy library for .NET that has been built with configurability in mind, and there are a ton of customisation options available for developers. In my previous articles, I explored Getting started with YARP and Transforming requests and responses with YARP. In this article, I will cover some…
InAPIs
Transforming requests and responses with YARP
YARP (Yet Another Reverse Proxy) is a comprehensive reverse proxy library developed by Microsoft for .NET that continues to see a strong level of adoption. In my previous post, I explored getting started with YARP, walking through how to set up and run an ASP.NET Core web application that uses YARP to intercept and route…
InAPIs
Getting started with YARP
YARP (Yet Another Reverse Proxy) is a versatile and highly performant reverse proxy library for .NET. If you’re a .NET developer seeking to develop a web application that utilises a reverse proxy to enable things like load balancing, caching and SSL termination, and you require a great degree of customisation, YARP is the ideal solution…
InWeb
Styling Blazor child components with CSS Isolation: What you really need to know
One of the most useful, yet often overlooked, aspects of Blazor’s CSS isolation support is the ability to style child components. At first glance, it may appear that isolated CSS can only be applied to the component to which it is attached; however, with a little help from the ::deep pseudo-selector (the “deep combinator”), it’s…
InTools
How to create Mermaid diagrams with ease using GitHub Copilot and Visual Studio
Have you ever found yourself spending countless hours creating the perfect diagram? For software diagrams that are intended to document the flow and interactions between different components, a lot of time usually needs to be spent understanding what the existing code is doing, and then, yet more time needs to be spent manually creating all…
Getting started with GitHub Copilot in Visual Studio
GitHub Copilot is a revolutionary AI-powered coding assistant that helps developers write code faster, reducing effort and freeing up time to focus on problem-solving and collaboration. For decades, aside from their own experience, developers have relied on online resources such as Stack Overflow and various forms of documentation, where available, to assist with the development…Categories
- APIs (17)
- Career (4)
- NoSQL (3)
- Programming (51)
- Scripting (19)
- Security (17)
- SQL (26)
- SQL Server Merge Replication (4)
- Tools (5)
- Web (29)
Recent Posts


