• 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.

  • 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.

  • Setting up a Security System with Home Assistant

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

  • 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.

  • Migrating from WebCORE to Home Assistant

    About a month ago I decided to migrate all my home automation from WebCORE to Home Assistant. I liked the idea of all my home automation being local and inside my house, both from a security and reliability perspective. Furthermore it just seemed like a fun project to tinker with, and in general seemed like it would add a bunch of flexibility to my home automation. In this post I’ll describe my experience with the migration, the good and the bad.