<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>The Backend Brief</title><description>Deep dives on .NET, system design, architecture and databases.</description><link>https://pavle.codes/</link><language>en-us</language><item><title>Vertical slice architecture: shallow vs deep folder organization</title><link>https://pavle.codes/blog/vertical-slice-architecture-folder-structure/</link><guid isPermaLink="true">https://pavle.codes/blog/vertical-slice-architecture-folder-structure/</guid><description>There is no universal folder structure for vertical slice architecture. Start shallow, add depth when a slice earns it, and organize around use cases.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Inside dotnet/extensions: resilience, telemetry, and AI for .NET services</title><link>https://pavle.codes/blog/dotnet-extensions-resilience-telemetry-ai/</link><guid isPermaLink="true">https://pavle.codes/blog/dotnet-extensions-resilience-telemetry-ai/</guid><description>A tour of dotnet/extensions&apos; nine libraries: resilience pipelines, IChatClient, LogProperties, redaction, contextual options, and testing fakes.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Configuration in .NET: Options pattern, validation, reloading, and secrets</title><link>https://pavle.codes/blog/configuration-in-dotnet-options-validation-secrets/</link><guid isPermaLink="true">https://pavle.codes/blog/configuration-in-dotnet-options-validation-secrets/</guid><description>How the options pattern builds on IConfiguration: DI registration, three lifetimes, validation, and secrets</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Configuration in .NET: sources, providers &amp; precedence</title><link>https://pavle.codes/blog/configuration-in-dotnet-sources-providers-precedence/</link><guid isPermaLink="true">https://pavle.codes/blog/configuration-in-dotnet-sources-providers-precedence/</guid><description>How .NET layers appsettings.json, environment variables, command-line args, and custom sources into one IConfiguration, then binds it to typed options.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>.NET 10 and C# 14: The features I&apos;d actually use in production</title><link>https://pavle.codes/blog/net-10/</link><guid isPermaLink="true">https://pavle.codes/blog/net-10/</guid><description>The C# 14 and .NET 10 features that earn their place in production: field, null-conditional assignment, extension members, Minimal API validation, and SSE.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>ProblemDetails in .NET: A practical guide to standardized API errors</title><link>https://pavle.codes/blog/problem-details-dotnet/</link><guid isPermaLink="true">https://pavle.codes/blog/problem-details-dotnet/</guid><description>Return consistent API errors in .NET with ProblemDetails: the RFC 9457 fields, Results.Problem, ValidationProblemDetails, and IExceptionHandler.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Filters in .NET: Complete guide to authorization, resource, action, exception, and result filters</title><link>https://pavle.codes/blog/filters-in-net/</link><guid isPermaLink="true">https://pavle.codes/blog/filters-in-net/</guid><description>How .NET filters intercept requests and responses to handle authorization, validation, error handling, and logging without bloating your controllers.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Dapper Plus or SqlBulkCopy? Pros, cons, and hidden limitations for high-performance .NET data ingestion</title><link>https://pavle.codes/blog/dapper-plus-vs-sqlbulkcopy/</link><guid isPermaLink="true">https://pavle.codes/blog/dapper-plus-vs-sqlbulkcopy/</guid><description>Raw TDS streaming vs orchestrated MERGE: an architectural and performance comparison, plus the hidden traps that catch even experienced engineers.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>.NET MAUI vs Flutter vs React Native: An honest comparison</title><link>https://pavle.codes/blog/maui-vs-flutter-vs-react-native/</link><guid isPermaLink="true">https://pavle.codes/blog/maui-vs-flutter-vs-react-native/</guid><description>No winners, just facts: rendering philosophy, performance realities, and how to pick the cross-platform framework that fits your team&apos;s true profile.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Where vs. WhereBulkContains: What&apos;s the real difference in EF Core?</title><link>https://pavle.codes/blog/where-bulk-contains/</link><guid isPermaLink="true">https://pavle.codes/blog/where-bulk-contains/</guid><description>Compare EF Core&apos;s version-dependent Contains translations with a temporary-table JOIN strategy, including tradeoffs for large and composite key sets.</description><pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Introduction to Entity Framework Extensions library</title><link>https://pavle.codes/blog/ef-extensions/</link><guid isPermaLink="true">https://pavle.codes/blog/ef-extensions/</guid><description>SaveChanges() generates one SQL statement per entity, a bottleneck at scale. EF Extensions adds true bulk operations to your existing DbContext.</description><pubDate>Thu, 27 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Why every .NET developer should know about Dapper Plus</title><link>https://pavle.codes/blog/dapper-plus/</link><guid isPermaLink="true">https://pavle.codes/blog/dapper-plus/</guid><description>Dapper is famous for fast reads, but bulk writes are its weak spot. Dapper Plus fills that gap with one-line bulk insert, update, delete, merge and synchronize.</description><pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate></item></channel></rss>