Skip to content

2023

How to Clean-up Your Azure DevOps Build Agents

With a higher usage of our build agents in Azure DevOps, we run out of disk space twice in the same week. It was now time to find a solution that would declutter our local build agents.

The last time I searched for a solution I could not find anything that would allow me to clean up the working directory of a build agent without creating a solution by myself. Luckily, Microsoft listened to the countless complaints and created a solution directly in the build agent pool of Azure DevOps.

Little SQL Server Tricks: Include Full-Text Indexes in the Create Table Scripts

SQL Server Management Studio may not include all important parts of your table when you let it write the CREATE TABLE script. For instance, the full-text index for a table is omitted by default. If you use the full-text search feature, you should make sure that SQL Server Management Studio includes them in the create scripts. You can change the behaviour with these steps:

How to Set a Memory Limit for Seq

A while ago we noticed a performance problem with Seq and the other applications that run on the same server. As it turned out, Seq allocated all the memory and left next to nothing for the other applications. A restart of Seq will only be a temporary solution, for a more durable one we need to restrict the memory consumption of Seq. Luckily, we can do that with a simple change in the configuration.

How to Create a Dev Container for Asciidoctor

We use AsciiDoc as the format for our documentation for the user group project. AsciiDoc is a bit like Markdown, but it supports multi-file documents out of the box and without any quirks.

We use the Ruby app Asciidoctor to turn our AsciiDoc files into a PDF as part of our build job. Since building the whole application takes time, it is not the fastest way to get feedback when we write the documentation. To shorten the feedback cycle, we put Asciidoctor into a development container to create the PDF whenever we want to check something.

How to Migrate from Moq to NSubstitute

I was a happy user of the Moq library for the last 12 years. I liked the simplicity of Moq and how it allowed me to write tests first and then incrementally build the functionality.

Unfortunately, the creator of Moq is currently doing his best to kill the project. As he declared, either his spyware SponsorLink strong-arms enough individual developers into sponsoring him, or he will quit developing Moq. This leaves us in a lose-lose situation and for me it is time to move my private projects to another mocking library.

I played with a few alternatives and finally settled with NSubstitute. It covers all my use cases and offers an even simpler syntax than what I know from Moq.

10 Unpleasant Surprises When Migrating From .Net 4.8 to .Net 6

While our migration from .Net 4.8 to .Net 6 worked better than expected, we found a lot of annoying incompatibilities that took us hours to figure out. In this post I collect the 10 most frustrating differences to give you an overview on what to expect when you upgrade your applications to .Net 6.

This is part 2 of the mini-series on the .Net 6 migration:

  1. The Challenging Endeavour of a .Net 6 Migration
  2. 10 Unpleasant Surprises When Migrating From .Net 4.8 to .Net 6
  3. .Net 6 in Production: Same Same, but Different