.NET
Build production-ready .Net backends through hands-on challenges, one concept at a time.
Dependency Injection
Learn how the container builds your objects instead of you: registering an interface against its implementation, letting constructors receive what they need rather than calling new, resolving every implementation of one interface at once, and choosing the lifetime that makes state shared or fresh.
Request Tracking Service Lifetimes
Order Service Constructor Graph
Layered Discount Pricing
Notification Dispatch Center
Configuration and Options
Learn how an application reads its settings: binding a configuration section to a typed class, layering files and environment variables so the right value wins, and refusing to start when a setting is wrong.
Typed Smtp Settings
Environment Override Precedence
Fail-Fast Options Validation
Payment Gateway Settings Module
Minimal APIs and Routing
Learn how routes become endpoints: mapping the verbs of a resource, constraining what a URL segment will match, taking query values straight into handler parameters, and sharing one prefix across a group.
Book Catalog Endpoints
Route Constraints For Order Lookup
Search Endpoint Query Binding
Task Tracker API With Route Groups
Model Binding and Validation
Learn how a request turns into objects your code can trust: binding a JSON body to a typed record, pulling values from headers and the query string, stating the rules on the model itself, and reporting every field that failed.
Signup Payload Binding
Annotated Product Validation
Header And Query Metadata Binding
Order Submission Endpoint
Middleware
Learn how every request passes through a pipeline before and after your endpoint: measuring and logging a call, answering one yourself without going further, putting the stages in an order that works, and carrying one id through all of them.
