41554 blogs · [ { "id": "01a0874b-923c-710a-bb83-bd9fabd054e0", "title": "Beyond CRUD: A Practical Guide to Modeling Business Processes in REST APIs", "url": "https://blog.ivankahl.com/practical-guide-to-modeling-business-processes-in-rest-apis/", "published_at": "2026-03-23T06:33:31+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fac9edcf9", "title": "8 NDepend Rules to Enforce Domain-Driven Design in .NET", "url": "https://blog.ivankahl.com/8-ndepend-rules-to-enforce-domain-driven-design-in-dotnet/", "published_at": "2026-03-12T09:31:04+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fad634dec", "title": "Decompiling the New C# 14 field Keyword", "url": "https://blog.ivankahl.com/decompiling-the-new-csharp-14-field-keyword/", "published_at": "2025-12-17T11:44:12+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fad8cb94c", "title": "Mastering the C# Dispose Pattern", "url": "https://blog.ivankahl.com/csharp-dispose-pattern/", "published_at": "2025-10-13T11:30:24+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fae3a3ba5", "title": "Stop Spaghetti SQL: Simplify Complex Queries with Postgres CTEs in Supabase", "url": "https://blog.ivankahl.com/stop-spaghetti-sql-simplify-complex-queries-with-postgres-ctes-in-supabase/", "published_at": "2025-10-02T13:11:46+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fae57f63b", "title": "What's New in C# 14: Null-Conditional Assignments", "url": "https://blog.ivankahl.com/csharp-14-null-conditional-assignments/", "published_at": "2025-09-10T06:00:00+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9faefe0b1c", "title": "What's New in C# 14: User-Defined Compound Assignments", "url": "https://blog.ivankahl.com/csharp-14-user-defined-compound-assignments/", "published_at": "2025-08-04T19:34:49+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fafcbad8a", "title": "Google Gemini Receipt Parser for YNAB", "url": "https://blog.ivankahl.com/google-gemini-receipt-parser-for-ynab/", "published_at": "2025-01-16T10:00:46+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb0752307", "title": "Beyond the Random Class: Cryptographic Randomness in .NET 6+", "url": "https://blog.ivankahl.com/beyond-the-random-class-cryptographic-randomness-in-net-6/", "published_at": "2025-01-06T11:00:31+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb1620549", "title": "C# Null-Conditional (?.) & Null-Coalescing (??) Operators Explained", "url": "https://blog.ivankahl.com/csharp-null-conditional-and-null-coalescing-operators-explained/", "published_at": "2025-01-01T23:05:52+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb24b4e2f", "title": "Introduction to Mapster in C#: Benefits and Quick Start Guide", "url": "https://blog.ivankahl.com/introduction-to-mapster-in-csharp/", "published_at": "2024-06-03T20:16:56+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb32af75f", "title": "Extension Methods in C#", "url": "https://blog.ivankahl.com/extension-methods-in-csharp/", "published_at": "2022-03-21T12:49:21+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb3c7e48c", "title": "Case-sensitive and Case-insensitive String Comparisons in PowerShell", "url": "https://blog.ivankahl.com/case-sensitive-and-insensitive-string-comparisons-in-powershell/", "published_at": "2021-12-18T07:25:42+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb43e6624", "title": "Logging .NET to AWS CloudWatch: Using NLog", "url": "https://blog.ivankahl.com/logging-dotnet-to-aws-cloudwatch-using-nlog/", "published_at": "2021-12-14T08:30:00+00:00" }, { "id": "01a0874b-923c-710a-bb83-bd9fb50000af", "title": "Logging .NET to AWS CloudWatch: Using Serilog", "url": "https://blog.ivankahl.com/logging-dotnet-to-aws-cloudwatch-using-serilog/", "published_at": "2021-12-11T14:00:00+00:00" } ] posts Claim your blog
Back to blog.ivankahl.com
Blog · corpus.blog/blogs/blog.ivankahl.com/posts

blog.ivankahl.com

blog.ivankahl.com

2026

2025

2024

2022

2021