Multi-Targeting NuGet Packages
I am updating some NuGet packages to support .NET 10 and had to refresh my memory on how to multi-target NuGet packages that support multiple target frameworks. In my case, I am adding support for .NET 9 and .NET 10, but these steps are applicable to other .NET versions. I just decided to write it…
CSS Media Query for display-mode
This media query property lets you style your web application differently when your app runs as a PWA (Progressive Web App). This lets you hide/show or resize HTML elements when your application is launched in standalone mode. Hide that header or footer when you’re in app mode, so your application feels more native. Use case: Make…
Blazor WASM in .NET 10 has Faster Startup
With .NET 10, Microsoft went back to the drawing board on how Blazor WASM starts up and ships assets. Instead of making minor, pathed fixes to Blazor WASM, they reworked compression, caching, and bootstrapping. The results are smaller downloads, faster first loads, and a developer experience that finally competes with the mature front-end frameworks. Here’s…
D20Tek.Functional Migration Guide: Option → Optional
Why the Change? The Option<T> class served as a good starting point for building a functional class that manages having a value or not, but its naming doesn’t align well with .NET conventions because it already has the concept of Option for defining application settings. Therefore, we’ve introduced a new Optional<T> type that’s cleaner, more…
Evaluating Open Source Dependencies
In the evolving world of open-source software (OSS), it’s becoming more common for widely used packages to shift from free offerings to subscription-based models. For software teams, especially senior developers, team leads, and architects, this trend introduces new considerations when evaluating which libraries to adopt. As engineers, our primary responsibility is to balance these decisions…
Mediator: Sync and Async Commands
D20Tek Mediator supports both synchronous and async commands. In many cases, synchronous commands are plenty. But when working with data files, external service calls, and databases, it is best for performance throughput to build async WebApi handlers and async commands that process that data. To this point, we have mostly looked at synchronous ICommandHandlers. Here…
Follow My Blog
Get new content delivered directly to your inbox.