• Creating a blog using GitHub Pages

    Many software engineers have blogs, whether it’s to write about a particularly sticky problem they ran into, express their opinion about a given technology, evangelize their own projects, or to create a tutorial for a common task. This article falls into the latter category, as I felt like there are so many options with varying levels of barrier to entry, but there’s a really simple solution.

    Read more

  • Debugging MSBuild

    At work I live primarily in the build space, specifically MSBuild-based environments, and a common trend I’ve noticed is that many developers struggle with MSBuild. The reason for this isn’t typically because the build space is “too hard”, or at least not much harder than any other kind of programming, but instead because the MSBuild syntax is effectively its own language and debugging execution of that language is not something most developers know how to do. This article attempts to provide various techniques for debugging MSBuild execution.

    Read more

  • Building a Console App with .NET Generic Host

    The .NET Generic Host is a feature which sets up some convenient patterns for an application including those for dependency injection (DI), logging, and configuration. It was originally named Web Host and intended for Web scenarios like ASP.NET Core applications but has since been generalized (hence the rename to Generic Host) to support other scenarios, such as Windows services, Linux daemon services, or even a console app.

    Read more

  • Setting up a Security System with Home Assistant

    Update Jun 3, 2020: Adjusted for breaking changes in version 0.110.

    Read more

  • Authoring MSBuild Project SDKs

    You may have seen the term “SDK-style projects” referring to MSBuild projects which have an Sdk attribute on the root <Project> element, and generally are associated with .NET Core projects. This article explains how they work and when and how you should author your own.

    Read more