Category: DotNet


  • Unleashing the Power of BeginScope in .NET

    We have been using the ILogger interface provided by .NET Core, but do you know how to leverage BeginScope for our benefit? Let’s explore how BeginScope helps us harness log scoping effectively. Let’s examine a sample transaction API in a minimal API project and see how one would typically write logs as the transaction flows…

  • Unlock the Differences: When to Use SingleOrDefault vs FirstOrDefault in LINQ

    When to Use SingleOrDefault vs FirstOrDefault? Many developers are familiar with the FirstOrDefault() method in LINQ for C#. However, there’s also SingleOrDefault(). What’s the key difference between them? And why might you choose one over the other instead of always sticking with FirstOrDefault()? Both methods work on collections that implement the IEnumerable<T> interface, allowing you…

  • Centralizing Package Management in .NET

    If you’re working with just a single project in your solution, this article might not apply to youโ€”feel free to skip it. Thanks for stopping by! Why Do You Need Directory.Packages.props? Imagine you’re building a large .NET solution with dozens of projects: web APIs, class libraries, worker services, and more. Updating a shared NuGet packageโ€”like…

  • A Better Way to Inject Configuration in .NET

    Hey there, fellow .NET developers! If you’ve been building apps for a while, you’re probably no stranger to grabbing settings from appsettings.json using the IConfiguration interface. It’s straightforward and gets the job done. But let’s be realโ€”it’s not without its quirks. Imagine you’re in the middle of a late-night coding session, and a sneaky typo…

  • Uncovering Hidden C# Features: CallerMemberName and CallerLineNumber

    Letโ€™s say you have a utility function thatโ€™s used by multiple other functions to โ€œdo the thing,โ€ and you want to log or print which function actually called this utility. How would you do that? For example, consider a function that extracts the user ID from a JWT token: Now, we want to log who…

  • Multiple authorization handlers for the same requirement in ASP.NET Core

    We saw how we could set up policy-based authorization in our previous article. In this article, weโ€™ll focus on Weโ€™ll use the same scenario as we used for our policy-based authorization: two lounges, one for premium users and one for standard users. Letโ€™s say we want to allow the trial/limited user to experience the standard…

  • Policy-Based Authorization in ASP.NET Core

    What is a policy-based authorization? Unlike role-based authorization, which solely depends on the roles assigned to the users. A policy-based authorization uses requirements that will provide access to a resource when succeeded. A requirement is a collection of data used to evaluate the current user. Why do we need policy-based authorization? With policy-based authorization, we have…

  • Role-based Authorization in ASP.NET Core

    What is role-based authorization? As the name says, role-based authorization authorizes a user based on the role defined to the user. Creating roles and users in ASP.NET Core with Identity For this article, Iโ€™ve created a new ASP.NET Core app in .NET 6 with Individual Accounts as the Authentication type, which will create the roles,…