Post

23 December 2025

23 December 2025

No More Mocking ILogger

Instead of mocking ILogger use the FakeLogger class from the Microsoft.Extensions.Diagnostics.Testing package.
It doesn’t help us, sadly, because we use Serilog.

GitHub MCP Registry Offers a Central Hub for Discovering and Deploying MCP Servers

Lots of MCP models to plug in to wherever you use them.

Mistakes I see engineers making in their code reviews

  • Don’t just review the diff
  • Don’t leave too many comments
  • Don’t review with a “how would I write it?” filter
  • If you do not want a change to be merged, leave a blocking review
  • Most reviews should be approvals

Personally I don’t agree with the last one - in my experience, if you approve them you often don’t get any feedback on your comments. Although I think he meant don’t block (the previous point), not so much approving immediately.

Understanding the worst .NET vulnerability ever: request smuggling and CVE-2025-55315

Very detailed explanation of how HTTP request smuggling works. Frankly, my eyes glazed over, but I guess the point is that you should update your things!

Integration Testing with Testcontainers

I didn’t really read this because it seems like a poor brother to Aspire.

GitHub Copilot tutorial: How to build, test, review, and ship code faster (with real prompts)

Beginners guide to using GitHub Copilot.

Maybe I should have read this first before I dived in and just did stuff.

How to write a great agents.md: Lessons from over 2,500 repositories

More Copilot lessons - how to write a good agents.md.

The Ten Most Critical Web Application Security Risks

The new OWASP Top 10 has been reorganized a bit, but number one is still Broken Access Control (being able to do more than you’re supposed to).

Why Do You Need To Write Architecture Tests in .NET

This is cool! Using one of these libraries - NetArchTest, ArchUnitNET - to write tests to check that your code architecture is as you expect it to be. More importantly, to check that it stays that way.

For example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Fact]
public void All_Domain_Entities_Should_Inherit_From_Base_Entity()
{
    // Arrange
    var result = Types
        .InAssembly(DomainAssembly)
        .That()
        .ResideInNamespace(DomainNamespace)
        .And()
        .AreClasses()
        .Should()
        .Inherit(typeof(Common.Domain.Entity))
        .GetResult();

    // Assert
    Assert.True(result.IsSuccessful, FormatFailure(result));
}

.NET Performance: Efficient Async Code

Another article about async/await.

Useful to know: ValueTask is more efficient than Task in cases where you only need to get the result once (it cannot be awaited multiple times).

Inside Kestrel: The Beating Heart of ASP.NET Core

In case you ever wondered why you need Kestrel and how it works.

AI Skeptic to AI Pragmatist

Nice title! This article pretty much describes my journey, and probably many others’.

Microsoft.Testing.Platform Now Fully Supported in Azure DevOps

The new MS testing platform is now fully supported in Azure DevOps pipelines. Fine, although we still use NUnit.

Goodbye Microservices: From 100s of problem children to 1 superstar

This popped up on one of my feeds, although it’s from 2018, which kinda highlights how short the microservices hype was.

This post is licensed under CC BY 4.0 by the author.