Dependency Injection Lifetimes and Their Relationships

Dependency Injection

Dependency Injection (DI) is one of the core pillars of ASP.NET Core. Most developers quickly learn the three service lifetimes—Transient, Scoped, and Singleton—but confusion often begins when these services start depending on one another. Questions […]

Share Button

Understanding Variance in C#: Covariance, Contravariance, and Invariance

C# generics provide type safety and code reusability, but sometimes strict type checking can make our code less flexible. To solve this problem, C# introduces variance, which defines how generic types relate to each other. […]

Share Button

Dotnet Assemblies

Understanding .NET Assemblies: Manifest, Metadata, Strong Names & How .NET Solved DLL Hell Every .NET application you build—whether it’s a Console App, ASP.NET Core Web API, Windows Service, or Class Library—is ultimately compiled into an […]

Share Button

Dispose Pattern

Resource management is one of the most important concepts in .NET development. While the .NET Garbage Collector (GC) automatically manages memory, it does not immediately release unmanaged resources such as file handles, database connections, network […]

Share Button

Vertical Slice Architecture in .NET Core

Vertical Slice Architecture is an architectural pattern where the application is organized by feature (business capability) instead of technical layers such as Controllers, Services, and Repositories. Each feature contains everything it needs: Instead of navigating […]

Share Button