Flatten Strings with Regex.Replace

Flatten Strings with Regex.Replace

Ah, strings, the cause of and solution to all our programming problems. As developers, we’re always balancing our codebase’s readability with the efficient use of string literals. Let’s see how we can work with SQL, a database query language, in...

Base64 Encoding With C#

Base64 Encoding With C#

I was working with the Spotify API and reading through the authorization documentation. Like most APIs, we need to securely access the service, authorized as the client application or on behalf of a user. We’ll need to deal with secret...

Rethinking OSS Attribution In .NET

Rethinking OSS Attribution In .NET

The other day I was playing a Castlevania on my RetroPie. In between the doses of pure childhood nostalgia, I found myself scrolling through the Raspberry Pi menus to find an open-source (OSS) attribution display menu. In front of me...

Entity Framework Core 5 Interceptors

Entity Framework Core 5 Interceptors

In previous non-core versions of Entity Framework (EF), it was possible to intercept calls to and from the database, but it’s wasn’t a feature many would classify under “first-class support”. Thankfully the community stepped in at the time to fill...

Capitalize First Letter Of Words With C#

Capitalize First Letter Of Words With C#

Presentation is an essential part of the language, let alone a software application. How we utilize script can make the difference between an enjoyable user experience or an incomprehensible mess. As developers, we likely spend more time formatting strings than...

Play Audio Files With .NET

Play Audio Files With .NET

I’ve been on a spiritual search for a cross-platform solution that allows developers to play and capture audio using .NET 5. It’s a journey filled with many highs and lows, mostly cursing at my screen and ruing the day I...

C# 9 Covariant Return Types

C# 9 Covariant Return Types

I’m sitting here reading through the “What’s New in C#9” blog post, and one of the listed additions to the language is Covariant return types. It sounds like an exciting feature, but what does that mean for my day-to-day development...

Common Use Cases For .NET Reflection

Common Use Cases For .NET Reflection

.NET developers are spoiled when it comes to runtime features, type reflection being at the top of the list of “features we didn’t know we needed”. Reflection enables us to obtain information about types defined within our application and all...