Augmenting the .NET Core 3.0 Generic Host

Battling a SOLID implementation of the Open-closed Principle

I love the .NET Core 3.0 Generic Host, I really do. As a framework for simplifying common scaffolding and lifetime management of long-running services, it's almost faultless. Unfortunately, the mere fact of being a framework rather than a library can lead to issues where, as a user of the framework, you're unable to accomplish a specific goal. For me, this happened while trying to get instrumentation written to a various EventSource instances to be output - in a configurable manner - through the Generic Host's logging infrastructure. Sounds simple huh, and it really ought to be. But it wasn't. Here's why:

Light-weight run-time composition for the .NET Core 3.0 Generic Host

With an RFC (Request For Comments) from the community

Cogenity.Extensions.Hosting.Composition can provide lightweight, runtime composition for the .NET Core 3.0 Generic Host... with some caveats. An issue has been created as an RFC on how best to address these caveats with comments/contributions welcomed.

Building .NET Core 3.0 With Azure Pipelines

Without giving away the keys to the castle!

My "go to" build system and package repository - MyGet - doesn't yet support building .NET Core 3.0 (or more specifically .NET Standard 2.1) projects. Having recently read about some of the features Microsoft have been adding to Azure DevOps I thought I'd see how easy (or not) it was to get a Pipeline setup to build my project and publish the package back to MyGet.

Using A Touch Overlay, In Portrait, On Raspbian Buster

Another wild google-chase in finding reliable information

This is just a short post - mostly for my own benefit - on how to use a touch-overlay, in portrait, on Raspbian Buster

Tech Adventures in Sustainability

Part I - Monitoring our solar generation

Installing solar panels and monitoring solar production not only provides immediate benefits in sustainable living but also highlights new, simple ways to change your lifestyle to further save money and energy. Here's how we do it.