Newsletters

A comparison of Rust’s borrow checker to the one in C#

November 03, 2024

In this issue, explore Rust's borrow checker vs. C#'s memory safety, master Action and Func delegates, implement health checks in ASP.NET Web API, identify loop antipatterns, and learn about concurrent collections in C#.

A Brief Introduction to the .NET Muxer

October 27, 2024

In this issue, explore the .NET muxer, dive into abstraction in software design, discover new LINQ methods in C# 13, and compare Ruby on Rails patterns with .NET. Plus, learn about enhancing the Result pattern in your code.

FrozenDictionary under the hood

October 20, 2024

In this issue, explore the speed of FrozenDictionary vs. Dictionary, dive into CSV parsing performance in C#, simplify code with LINQ's result pattern, build a wc tool in C#, and uncover undocumented .NET events.

Using Windows Error Reporting in .NET

October 13, 2024

In this issue, explore Windows Error Reporting in .NET, memory profiling in unit tests, and implementing OpenTelemetry in ASP.NET Core. Plus, learn about partition methods for collections in C# and migrating from EF Core 6 to 8.

10 Lessons I Learned from Using Aspire in Production

October 06, 2024

In this issue, discover key insights from Oleksii on using .NET Aspire in production, enhance your IP address tracking with Steve's efficient dictionary, and learn about avoiding identity obsession with Peter's DDD tips in EF Core.

Implementing Blocked Floyd-Warshall algorithm

September 29, 2024

In this issue, explore the Blocked Floyd-Warshall algorithm for all-pairs shortest paths, learn about disabling Activity recording in OpenTelemetry, and discover async streaming in ASP.NET Core. Plus, implement geo-distance searches and master conditional compilation symbols in C#.

Anatomy of the .NET dictionary

September 22, 2024

In this issue, dive into the intricacies of .NET dictionaries, explore efficient data structures in C#, and uncover the power of behavior-switching in Akka.NET. Plus, learn about TDD for password validation and enforcing code quality gates.

On over-engineering

September 15, 2024

In this issue, we explore the balance between over-engineering and simplicity in code, dive into .NET 9 performance enhancements, and learn about interspersing collections, the Floyd-Warshall algorithm, and lazy loading in EF Core.

Effective Integration Testing with a Database in .NET

September 08, 2024

In this issue, explore effective .NET integration testing with databases, learn how to work with tar files, validate pull requests, optimize dictionary lookups, and implement OpenID Connect with ASP.NET Core.

Understanding .NET stack traces

September 01, 2024

In this issue, explore the importance of .NET stack traces for debugging, learn about avoiding overflow exceptions in arithmetic operations, discover the removal of BinaryFormatter in .NET 9, and understand DTO auto translators and custom equality rules in HashSets.

Building pipelines with IAsyncEnumerable

August 25, 2024

In this issue, we dive into building data pipelines with IAsyncEnumerable in .NET, implementing audit trails in ASP.NET Core, and exploring cloud development with .NET Aspire, including hosting Keycloak containers. Plus, learn about the Unit of Work design pattern.

Journey through the .NET World

August 18, 2024

This issue dives into the .NET world, covering topics from the evolution of the .NET Framework to unit testing, logging improvements with source generators, and implementing custom role permissions in ASP.NET Core.

Type Unions

August 11, 2024

In this issue, explore Type Unions in software development, simplify .NET apps with Aspire, read .env files in C#, analyze middleware for ASP.NET MVC 5, and enhance top-level statements in .NET.

Azure Functions Best Practices

August 04, 2024

This issue explores crucial best practices for Azure Functions, unit testing in .NET, transitioning to Minimal APIs, async-await nuances, and a deep dive into a decade-old .NET bug fix. Enhance your development skills today.

The Memento Design Pattern in C#

July 28, 2024

This issue dives into essential C# concepts, including the Memento design pattern for user-friendly apps, migrating APIs with the Obsolete attribute, and implementing health checks for ASP.NET Core. Boost app performance with cached repositories.

How not to benchmark

July 21, 2024

In this issue, explore LINQ performance insights, enhance query readability, and discover .NET 8 debugging improvements. Plus, learn how to manage type conflicts with extern aliases and tackle nullability warnings effectively.

Why and How to Execute GraphQL Queries in .NET

July 14, 2024

In this issue, explore how to effectively execute GraphQL queries in .NET, seed in-memory databases with Bogus, modernize your WPF app with the Fluent theme, and leverage .NET channels with discriminated unions for efficient data processing.

Building Powershell

July 07, 2024

In this issue, explore the journey of Jeffrey Snover and PowerShell's transformation of Windows admin, plus insights on .NET applications, hashing techniques, Hangfire for background jobs, and HTML range inputs with Tag Helpers.

Programmatically monitoring and reacting to logs in .NET Aspire

June 30, 2024

In this issue, explore advanced .NET techniques: monitor logs reactively, refactor MAUI apps with C# Markup, and understand the nuances of Path.Combine vs. Path.Join. Plus, discover the upcoming ReadOnlySet and adjust timeout values in Semantic Kernel.

How to Use C# to Follow OAuth Authentication Flows

June 23, 2024

In this issue, discover how to implement OAuth in C#, refactor with default lambda parameters, manage stored procedures efficiently, add health checks in OpenAPI specs, and enhance ASP.NET applications with non-production endpoints.