All Posts
Discover all our published articles and insights.
Deploying a .NET App with Docker Compose
Docker makes it easy to package a .NET application and its dependencies into a consistent, portable environment. Docker Compose takes this a step further by allowing you to define and run your application and supporting services from a single configuration file. In this article, we’ll look at how to deploy a .NET application using Docker Compose.

Multi-Stage Docker Builds for .NET
Multi-stage Docker builds provide a cleaner and more efficient way to package .NET applications. By separating the build environment from the final runtime image, you can keep development tools out of production, reduce image size and create more focused containers. In this article, we’ll look at how multi-stage Docker builds work and how to use them with modern .NET applications.

Running SQL Server in Docker for Local Dev
Setting up SQL Server for local development can sometimes feel like more work than the application itself. Docker provides a simple alternative by allowing SQL Server to run inside a container without installing the database server directly onto your development machine. In this article, we’ll look at how to run SQL Server with Docker and connect it to a local .NET application.

Dockerising a Blazor Server App
Dockerising a Blazor Server application is a great way to make deployment more predictable and portable. Instead of installing the .NET runtime and configuring a server manually, the application and its dependencies can be packaged into a container. In this article, we will take a Blazor Server application, create a Docker image for it, and run it as a container.

Clean Commits: Writing Better Messages
Good Git commit messages are more than a description of what you changed. They create a useful history of your project, helping you understand why a change was made months or even years later. In this article, we’ll look at practical ways to write cleaner, clearer commit messages and introduce conventions that can make your Git history easier to understand and maintain.

When to Use Records in C#
C# records provide a concise way to represent data where the values themselves matter more than the identity of the object. Introduced in C# 9, records include built-in value-based equality, concise syntax and support for immutable data models. But records are not a replacement for classes everywhere. Knowing when to use a record, and when to stick with a class, can make your C# code cleaner and easier to maintain.

Understanding Middleware in ASP.NET Core
Middleware is one of the fundamental building blocks of ASP.NET Core. It sits between an incoming HTTP request and your application, allowing you to inspect, modify or respond to requests before they reach your application code. Understanding how middleware works, and especially the order in which it runs, is essential when building reliable ASP.NET Core applications.

Logging Strategies That Scale
Logging is easy when an application is small, but as systems grow, so does the amount of information they generate. Without a sensible strategy, logs can quickly become noisy, expensive and difficult to search. In this article, we look at practical logging strategies for modern .NET applications, covering structured logging, log levels, performance, centralisation and how to make logs genuinely useful when troubleshooting production systems.

