RSSAmplifier

Blog

Ivan Kahl's Blog

Hi, I'm Ivan. I'm a software engineer and love writing about what I learn. You'll find all my articles here.

blog.ivankahl.comRSS feed ↗15 posts

Latest posts

Beyond CRUD: A Practical Guide to Modeling Business Processes in REST APIs

Stop forcing complex business logic into basic CRUD operations. This guide covers 5 actionable patterns for designing RESTful APIs that communicate true intent. Learn when to nest sub-resources, how to model complex actions, and why leaning into RPC-style verbs can be an acceptable compromise.

8 NDepend Rules to Enforce Domain-Driven Design in .NET

Learn how to use NDepend and CQLinq to automate Domain-Driven Design (DDD) enforcement in .NET. This guide provides eight practical rules to protect architectural boundaries, ensure entity encapsulation, and maintain aggregate root consistency to prevent your codebase from degrading.

Decompiling the New C# 14 field Keyword

C# 14’s field keyword helps reduce property boilerplate code. This article examines the IL code behind the new keyword and highlights caveats you must know before refactoring your codebase.

Mastering the C# Dispose Pattern

Mastering C# IDisposable is crucial for reliable resource management. Learn how to deterministically clean up unmanaged resources like database connections, file handles, and network sockets, and avoid memory leaks.

Stop Spaghetti SQL: Simplify Complex Queries with Postgres CTEs in Supabase

Modern web applications deal with massive amounts of complex data, and relational databases are a popular choice for keeping everything organized. But even with structured data, queries can turn into nightmares when you need to retrieve large amounts of interconnected information. Take a music streaming app that wants to retrieve

What's New in C# 14: Null-Conditional Assignments

C# 14, coming with .NET 10, introduces null-conditional assignment, a feature that lets you safely assign values to properties or indexers without endless if statements. Learn more about this new feature in this article.

What's New in C# 14: User-Defined Compound Assignments

C# 14, coming with .NET 10, introduces user-defined compound assignments. It allows for the creation of more efficient assignment operators, preventing unnecessary object creation. Discover how to implement and use this new feature, and learn about the potential pitfalls to watch out for.

Google Gemini Receipt Parser for YNAB

Tired of manually logging expenses in YNAB? Discover how I automated the importing and categorising of transactions in YNAB from receipt images using Google Gemini. You'll also see how easy it is to run the Docker container for your own budget.

Beyond the Random Class: Cryptographic Randomness in .NET 6+

Learn how to generate cryptographically secure random numbers in .NET applications using the RandomNumberGenerator class. Discover the importance of true randomness for security-sensitive tasks and explore best practices for generating unpredictable values.

C# Null-Conditional (?.) & Null-Coalescing (??) Operators Explained

Learn how C#'s null-conditional and null-coalescing operators can help you write cleaner, more robust code by gracefully handling null values.

Introduction to Mapster in C#: Benefits and Quick Start Guide

Mapster is a versatile, high-performance object mapping library for .NET. This blog post provides an introductory guide to using Mapster, highlighting its key features and benefits for efficient data mapping in C# applications.

Extension Methods in C#

Have you ever needed to extend a class provided by a third-party library? Perhaps you want to add additional functionality or simplify a particular set of methods in the library.

Case-sensitive and Case-insensitive String Comparisons in PowerShell

Discover how to perform case-sensitive and case-insensitive string comparisons in PowerShell. This article explains using operators like -eq, -ceq, -like, and -clike for precise string handling.

Logging .NET to AWS CloudWatch: Using NLog

Learn how to log .NET applications to AWS CloudWatch using NLog in this comprehensive guide. It covers setting up NLog, configuring it to log to CloudWatch, and customizing settings for optimal performance.

Logging .NET to AWS CloudWatch: Using Serilog

Learn how to log .NET applications to AWS CloudWatch using Serilog in this detailed guide. It covers setting up Serilog, integrating it with CloudWatch, and customizing log settings for optimal performance.