Posts
2025
Using isolated CSS in Blazor components
Scope CSS styles to individual Blazor components using CSS isolation to avoid global style conflicts.
2024
Controlling christmas spending with Semantic Kernel
Analyze receipts and track Christmas spending using Semantic Kernel, Azure OpenAI, and Blazor.
Using containers to... keep track of Christmas presents' prices?
Automate Christmas gift price monitoring using Docker containers, Blazor, and a .NET API backend.
Custom ValidationAttribute and Blazor validation
Create reusable custom ValidationAttribute classes for Blazor form validation with data annotations.
2023
Custom exception handling on .NET API
Build custom exception handling middleware to return clean error responses from .NET APIs.
A nicer way to inject stuff
Organize .NET dependency injection registrations using clean IServiceCollection extension methods.
Dependency injection with Attributes on .NET API
Enable dependency injection in .NET API action filters using TypeFilterAttribute instead of ActionAttribute.
Swagger documentation with external libraries
Enable Swagger to display XML documentation from models defined in external .NET class libraries.
Cleanup local branches in Git
Delete all local Git branches except the main branch using a single PowerShell command.
Updating Identity's routes in ASP.NET Core 7
Customize default ASP.NET Core Identity login and register URLs by scaffolding Identity pages.
2022
Custom attributes on .NET 6 Core API
Create custom ActionFilterAttribute classes to validate request headers in .NET 6 Core APIs.
Handle loading components in Blazor
Build a reusable loading spinner wrapper component in Blazor using RenderFragment and ChildContent.
Getting the expiration date from a certificate
Programmatically retrieve SSL certificate expiration dates using C# HttpClient and X509Certificate2.
Focusing an element in Blazor
Set focus on HTML elements in Blazor components using JavaScript Interop and element references.
Generate *.dacpac files from VS Database project in GitHub Actions
Automate dacpac file generation from Visual Studio Database projects using GitHub Actions pipelines.
Toggle themes with Javascript Interop in Blazor
Implement light and dark theme toggling in Blazor using JavaScript Interop and CSS data attributes.
Uploading files to Azure Blob Storage in Blazor
Upload files to Azure Blob Storage from a Blazor app using the native HTML5 file input.
2020
Overriding a core controller of Pimcore
Override core Pimcore controllers by creating custom Symfony bundles with service configuration.
Configure the Apple Magic Keyboard 2 on Windows 10
Install drivers and configure the Apple Magic Keyboard 2 to work properly on Windows 10.
Adding compiled libraries to a NuGet package
Fix missing DLLs in NuGet packages by including compiled library references in the nuspec file.