Daniel Cazzulino

Latest articles

Custom labeling of GitHub sponsors via Actions

TLDR: just go check sponsors.yml and sponsors.ps1 😉 For my new GitHub organization (which I had to set up alongside an LLC to actually be able to be sponsored!), I want to automatically label issues and PRs depending on whether the author is a sponsor. Easy enough, just use a readily available action in the marketplace! It does the basics, and...

Minimalistic Serverless Shortlink Service in ~70 LoC

A few years back, while working on some DevOps-related tasks for Xamarin, I needed to create permalinks to CI/build artifacts so that other build pipelines (as well as local builds) could consume those regardless of the CI system that produced them (we had a mixture, so this complicated things). Every CI system typically already provides a...

Shareable Windows Terminal profile for installed Visual Studio Developer PowerShell

As I mentioned in another post, Visual Studio now provides a Developer PowerShell command prompt shortcut, which is super useful since it has all the environment variables properly set up to do things like msbuild from command line and have it pick the “right” MSBuild, as well as launching VS by just typing devenv. There is a not-so-minor drawback...

How to use .NET module initializers in a concrete real use case

Module initializers in C# aren’t a radical new thing for sure, but they were esoteric enough and they required a NuGet package to work, so it seemed like a sort of unofficial/unsupported feature. Not anymore since they are now an officially supported feature with first-class language support in C# 9! So the first thing might be to ask: what would...

How use Visual Studio, MSBuild or Roslyn previews in GitHub or DevOps CI

If you want to leverage the many awesome C# 9 features, including roslyn source generators like ThisAssembly, all of which require the latest and greatest .NET 5.0 preview, it would be a pity to have to give up the safety net of your CI builds (whether GitHub Workflows or Azure DevOps pipelines) just because they don’t provide hosted images with the...

How to generate code using Roslyn source generators in real world scenarios

Roslyn (as of 16.8 Preview 3) now brings first-class support for source code generators that run as part of a project compilation. The provided cookbook is a fantastic resource to get to know the capabilities and some specific scenarios this feature was created for. The carefully chosen set of features, driven by concrete scenarios, make for...

How to customize and publish a docfx site

I wanted to tweak the dotnetconfig.org site in a few ways, and it turned out that many of the generated files from a docfx build are plain content files that are provided only if your project doesn’t provide them already. Change default icons Most docfx sites I see just have the default logo because it’s not documented (that I could easily...

Messaging Extensibility API

Back in 2012, I was on a CQRS Journey together with the fine team at Microsoft patterns & practices. We had a great advisory board to discuss and learn from and it was an interesting way to tackle a novel pattern to solve a complex problem. Back then microservices wasn’t even a thing yet, go figure! Without getting into the CQRS pattern itself,...

Central Package Versions

There is some ongoing work in NuGet itself to add support for managing nuget packages in a central manner, make sure you read about the indented design since you may want to wait for that to ship in stable form if you require the advanced features outlined there This showcases how you can adopt this now, with stuff that is already shipping and stable,...

Customizing Windows Terminal with Visual Studio tabs

I usually switch between VS versions, powershell and regular command prompt. Having a quick access Windows Terminal tab ready is indispensable: Scott Hanselman has already written an excelent overview of the general features, the new format and how it all works, so I won’t repeat any of that here. What I do think is valuable to share beyond...

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!