DotNet Fullstack + Angular Tutorial

📂 Chapter 1: C# Fundamentals

1010 C# and .NET — The Platform, the Language and the Toolchain Beginner 1020 Variables and Types — C#'s Type System Beginner 1030 Strings — Interpolation, Verbatim Literals and Common Methods Beginner 1040 Arrays — Fixed-Size Collections and Iteration Beginner 1050 Console I/O and Top-Level Statements — Writing Your First Programs Beginner

📂 Chapter 2: Control Flow

2010 If/Else and Ternary — Conditional Branching Beginner 2020 Switch Statement and Switch Expressions — Modern Pattern Matching Beginner 2030 For and Foreach Loops — Iterating Collections Beginner 2040 While and Do-While — Condition-Based Loops Beginner 2050 Logical Operators and Guard Clauses — Clean Conditional Code Beginner

📂 Chapter 3: Methods, Parameters and Scope

3010 Declaring and Calling Methods — The Building Blocks of Reuse Beginner 3020 Parameters and Return Values — Passing Data In and Out Beginner 3030 Ref, Out and In — Passing by Reference Beginner 3040 Method Overloading — Multiple Signatures, One Name Beginner 3050 Scope, Local Variables and Local Functions Beginner

📂 Chapter 4: OOP — Classes, Objects and Constructors

4010 Classes and Objects — Defining Types and Creating Instances Beginner 4020 Properties — Encapsulation with Getters and Setters Beginner 4030 Constructors — Initialising Objects Correctly Beginner 4040 Static Members and Static Classes — Shared State and Utilities Beginner 4050 Records — Immutable Data Types and Value Semantics Beginner

📂 Chapter 5: Inheritance and Polymorphism

5010 Inheritance — Extending Classes with Base and Derived Types Intermediate 5020 Virtual, Override and Sealed — Customising Inherited Behaviour Intermediate 5030 Abstract Classes — Enforcing Structure in Derived Types Intermediate 5040 Polymorphism — Writing Code That Works with Many Types Intermediate 5050 Casting and Type Checking — is, as, and Pattern Matching Intermediate

📂 Chapter 6: Interfaces and Abstract Classes

6010 Defining and Implementing Interfaces — Contracts Without Implementation Intermediate 6020 Interfaces and Dependency Injection — The Foundation of Testable Code Intermediate 6030 Explicit Interface Implementation — Resolving Conflicts and Hiding Members Intermediate 6040 Default Interface Methods and Interface Evolution Intermediate 6050 Interfaces vs Abstract Classes — Choosing the Right Abstraction Intermediate

📂 Chapter 7: Collections — List, Dictionary, HashSet, Queue

7010 List<T> — The Go-To Dynamic Collection Intermediate 7020 Dictionary<TKey, TValue> — Fast Key-Based Lookup Intermediate 7030 HashSet<T> and Sorted Collections — Uniqueness and Ordering Intermediate 7040 Queue<T>, Stack<T> and LinkedList<T> — Specialised Sequences Intermediate 7050 Collection Interfaces and Choosing the Right Collection Intermediate

📂 Chapter 8: Generics — Type-Safe Reusable Code

8010 Generic Classes and Methods — Writing Once, Using Many Types Intermediate 8020 Generic Constraints — Restricting What T Can Be Intermediate 8030 Generic Interfaces, Covariance and Contravariance Intermediate 8040 The Result Pattern — Generic Error Handling Without Exceptions Intermediate 8050 Generic Repository — Reusable Data Access with Type Safety Intermediate

📂 Chapter 9: LINQ — Language Integrated Query

9010 LINQ Fundamentals — Querying Collections with Method Syntax Intermediate 9020 LINQ Transformations — SelectMany, GroupBy, Join and Zip Intermediate 9030 LINQ Aggregation and Set Operations Intermediate 9040 LINQ Query Syntax and Advanced Patterns Intermediate 9050 LINQ and EF Core — From In-Memory to SQL Intermediate

📂 Chapter 10: Exception Handling — try/catch/finally

10010 Try, Catch and Finally — The Exception Handling Fundamentals Intermediate 10020 Exception Types and Hierarchy — Choosing the Right Exception Intermediate 10030 Custom Exceptions — Domain-Specific Error Types Intermediate 10040 Exception Filters and the When Clause Intermediate 10050 Global Exception Handling in ASP.NET Core Intermediate

📂 Chapter 11: File I/O and Streams

11010 File and Directory Classes — Working with the Filesystem Intermediate 11020 Streams — StreamReader, StreamWriter and FileStream Intermediate 11030 Async File I/O — Non-Blocking File Operations Intermediate 11040 JSON Serialisation — System.Text.Json in Depth Intermediate 11050 CSV and Binary Files — Processing Structured File Formats Intermediate

📂 Chapter 12: Delegates, Events and Lambdas

12010 Delegates — Type-Safe Function Pointers Advanced 12020 Lambda Expressions — Inline Anonymous Functions Advanced 12030 Action, Func and Predicate — Built-In Delegate Types Advanced 12040 Events — The Publisher-Subscriber Pattern Advanced 12050 Expression Trees and Func vs Expression Advanced

📂 Chapter 13: Async/Await and the Task Parallel Library

13010 Task and Async/Await — Non-Blocking Asynchronous Code Advanced 13020 Task Combinators — WhenAll, WhenAny and Concurrent Operations Advanced 13030 CancellationToken — Cooperative Cancellation and Timeouts Advanced 13040 Parallel Class and PLINQ — CPU-Bound Parallelism Advanced 13050 Async Patterns and Common Pitfalls — Deadlocks, Exceptions, Async Void Advanced

📂 Chapter 14: Pattern Matching, Records and C# 10-12 Features

14010 Pattern Matching Deep Dive — is, switch Expressions and Patterns Advanced 14020 Records in Depth — Immutability, Equality and Inheritance Advanced 14030 C# 10 and 11 Features — Global Usings, File-Scoped Namespaces, Required Members Advanced 14040 C# 12 Features — Primary Constructors, Collection Expressions and Aliases Advanced 14050 Nullable Reference Types — Eliminating Null Reference Exceptions Advanced

📂 Chapter 15: Advanced C# — Span, Memory and Reflection

15010 Span and Memory — Zero-Allocation Slicing Advanced 15020 ArrayPool and stackalloc — Avoiding Heap Allocations Advanced 15030 Reflection — Inspecting Types and Members at Runtime Advanced 15040 Custom Attributes — Metadata Annotations for Your Types Advanced 15050 Source Generators and Compile-Time Code Generation Advanced

📂 Chapter 16: Project Structure, NuGet and Solution Files

16010 The .NET Project — csproj, Program.cs and the SDK Intermediate 16020 Solution Files and Multi-Project Structure Intermediate 16030 NuGet Packages — Finding, Installing and Managing Dependencies Intermediate 16040 Layered Architecture — Organising a Clean Solution Intermediate 16050 dotnet CLI, Global Tools and Project Settings Intermediate

📂 Chapter 17: .NET Core Architecture and the Generic Host

17010 .NET Runtime Overview — CLR, JIT and the SDK vs Runtime Intermediate 17020 The Generic Host — IHost, IHostBuilder and Application Lifetime Intermediate 17030 Startup and Program.cs — The Modern Minimal API Bootstrap Intermediate 17040 Environments and Configuration Bootstrap Intermediate 17050 IHostedService and Application Lifetime Intermediate

📂 Chapter 18: Dependency Injection — Built-In IoC Container

18010 DI Fundamentals — Service Registration and Constructor Injection Intermediate 18020 Service Lifetimes — Transient, Scoped and Singleton Intermediate 18030 Advanced Registration — Factories, Open Generics and Decorators Intermediate 18040 Resolving Services — GetRequiredService, Scopes and Service Locator Intermediate 18050 IOptions Pattern — Strongly-Typed Configuration Binding Intermediate

📂 Chapter 19: Configuration — appsettings, Environments, Secrets

19010 The Configuration System — IConfiguration and Providers Intermediate 19020 appsettings.json — Structure, Hierarchy and Type Binding Intermediate 19030 Environment Variables and User Secrets Intermediate 19040 Custom Configuration Providers and Azure Key Vault Intermediate 19050 Configuration Validation and Fail-Fast Startup Intermediate

📂 Chapter 20: Logging — Built-In Logging and Serilog

20010 ILogger Fundamentals — Log Levels, Messages and Injection Intermediate 20020 Structured Logging — Properties, Scopes and Correlation Intermediate 20030 Serilog — Setup, Sinks and Enrichers Intermediate 20040 Request Logging and Performance Logging Intermediate 20050 Log Filtering, Sinks and Production Configuration Intermediate

📂 Chapter 21: Middleware Pipeline — Built-In and Custom

21010 Middleware Pipeline Fundamentals — Request and Response Flow Intermediate 21020 Built-In Middleware — HTTPS, CORS, Static Files and Routing Intermediate 21030 Custom Middleware — Writing Reusable Request Processing Components Intermediate 21040 Pipeline Branching — Map, MapWhen and UseWhen Intermediate 21050 Endpoint Routing — MapControllers, MapGet and Endpoint Metadata Intermediate

📂 Chapter 22: Background Services and IHostedService

22010 IHostedService Lifecycle — StartAsync, StopAsync and Graceful Shutdown Intermediate 22020 BackgroundService — The Long-Running Loop Pattern Intermediate 22030 Periodic Tasks — Timers, Cron and PeriodicTimer Intermediate 22040 Channel<T> — Async Producer-Consumer Queues Intermediate 22050 Worker Service — Standalone Background Processing Intermediate

📂 Chapter 23: .NET Core Security — Data Protection and HTTPS

23010 HTTPS, HSTS and Certificate Management Advanced 23020 Data Protection API — Encrypting Sensitive Data Advanced 23030 Anti-Forgery Tokens and Security Headers Advanced 23040 Secret Management and Key Rotation Advanced 23050 Secure Coding Practices — Input Validation, SQL Injection and XSS Prevention Advanced

📂 Chapter 24: Publishing — Self-Contained, Docker and IIS

24010 Publishing Modes — Framework-Dependent, Self-Contained and Single File Advanced 24020 Docker Containerisation — Dockerfile and Multi-Stage Builds Advanced 24030 Docker Compose — Local Multi-Service Development Advanced 24040 IIS and Windows Deployment — The ASP.NET Core Module Advanced 24050 CI/CD Pipeline — GitHub Actions for Build, Test and Deploy Advanced

📂 Chapter 25: ASP.NET MVC — Pattern and Project Setup

25010 The MVC Pattern — Model, View and Controller Roles Beginner 25020 Creating an ASP.NET Core MVC Project Beginner 25030 MVC Request Lifecycle — Routing to Response Beginner 25040 Conventional Routing — Route Templates and Constraints Beginner 25050 MVC Program.cs — Services, Middleware and Static Files Beginner

📂 Chapter 26: Controllers and Action Methods

26010 Controller Basics — Naming, Inheritance and DI Beginner 26020 Action Methods — Return Types, Parameters and HTTP Verbs Beginner 26030 Action Results — ViewResult, RedirectResult and All Result Types Beginner 26040 Model Binding Basics — Forms, Route Values and Query Strings Beginner 26050 TempData, ViewBag and ViewData — Passing Data to Views Beginner

📂 Chapter 27: Razor Views, Layouts and Partial Views

27010 Razor Syntax — C# in HTML Templates Intermediate 27020 Layouts and Sections — Master Page Templates Intermediate 27030 Partial Views — Reusable HTML Fragments Intermediate 27040 Tag Helpers — HTML-Friendly ASP.NET Core Helpers Intermediate 27050 View Components — Reusable UI with DI and Logic Intermediate

📂 Chapter 28: Models, Data Annotations and Validation

28010 ViewModels — Designing Data Contracts for Views Intermediate 28020 Data Annotations — Declarative Validation Rules Intermediate 28030 Custom Validation — IValidatableObject and Custom Attributes Intermediate 28040 Client-Side Validation — Unobtrusive jQuery Validation Intermediate 28050 ModelState Patterns — Errors, Display and AJAX Validation Intermediate

📂 Chapter 29: Routing and URL Generation

29010 Attribute Routing — Route Templates on Controllers and Actions Intermediate 29020 URL Generation — Url.Action, Url.RouteUrl and Tag Helpers Intermediate 29030 Route Constraints and Defaults — Fine-Tuning URL Matching Intermediate 29040 Areas — Organising Large MVC Applications Intermediate 29050 SEO-Friendly Routing — Slugs, Canonical URLs and Redirects Intermediate

📂 Chapter 30: Tag Helpers and View Components

30010 Custom Tag Helpers — Building Reusable HTML Components Intermediate 30020 Advanced Form Tag Helpers — Select, Checkbox and File Upload Intermediate 30030 Environment, Cache and Script Tag Helpers Intermediate 30040 Advanced View Components — Parameters, Caching and Testing Intermediate 30050 Razor Pages vs MVC — Choosing the Right Pattern Intermediate

📂 Chapter 31: ASP.NET Core Identity — Authentication and Roles

31010 ASP.NET Core Identity Setup — Users, Roles and Database Advanced 31020 User Registration and Login — UserManager and SignInManager Advanced 31030 Role-Based Authorization — Roles, Claims and Policies Advanced 31040 Email Confirmation and Password Reset Advanced 31050 External Login and Two-Factor Authentication Advanced

📂 Chapter 32: Action Filters, Error Handling and MVC Middleware

32010 Action Filters — OnActionExecuting and OnActionExecuted Advanced 32020 Result Filters and Exception Filters Advanced 32030 Global Error Handling — UseExceptionHandler and ProblemDetails Advanced 32040 Resource and Authorization Filters Advanced 32050 Filter Pipeline, Order and Cross-Cutting Concerns Advanced

📂 Chapter 33: Web API Fundamentals — REST and Project Setup

33010 REST Principles — Resources, Verbs and Status Codes Beginner 33020 ASP.NET Core Web API Project Setup Beginner 33030 The [ApiController] Attribute — Automatic Behaviour Beginner 33040 ControllerBase — HTTP Responses and Helper Methods Beginner 33050 Swagger and OpenAPI — Auto-Generated API Documentation Beginner

📂 Chapter 34: Controllers, Routing and HTTP Methods

34010 Web API Controller Structure — Route Prefixes and Action Names Beginner 34020 HTTP GET Patterns — Collections, Single Resources and Filtering Beginner 34030 HTTP POST, PUT and PATCH — Creating and Updating Resources Beginner 34040 HTTP DELETE and Special Actions — Soft Delete and Custom Operations Beginner 34050 Versioning Strategies and HTTP Headers Beginner

📂 Chapter 35: Request and Response — DTOs and Content Negotiation

35010 Request DTOs — Designing Input Contracts Beginner 35020 Response DTOs — Shaping API Output Beginner 35030 Advanced Model Binding — Sources, Custom Binders and Complex Types Beginner 35040 Content Negotiation — JSON, XML and Custom Formatters Beginner 35050 DTO Mapping Patterns — Manual, AutoMapper and Projection Beginner

📂 Chapter 36: Model Binding, Validation and FluentValidation

36010 The Validation Pipeline — DataAnnotations and ModelState in Web APIs Intermediate 36020 FluentValidation — Setup and Basic Rules Intermediate 36030 Advanced FluentValidation — Cross-Property Rules and Async Validators Intermediate 36040 Validation Error Response Shapes — Consistent 400 Responses Intermediate 36050 Validation Best Practices — Layered Validation and Domain Rules Intermediate

📂 Chapter 37: Entity Framework Core — Setup and DbContext

37010 EF Core Fundamentals — ORM Concepts and the DbContext Intermediate 37020 Entity Configuration — Data Annotations and Fluent API Intermediate 37030 Relationships — One-to-Many, Many-to-Many and One-to-One Intermediate 37040 DbContext Lifetime, Scoping and Connection Pooling Intermediate 37050 EF Core Querying Basics — LINQ, AsNoTracking and Eager Loading Intermediate

📂 Chapter 38: EF Core Migrations, Seeding and CRUD Operations

38010 EF Core Migrations — Creating, Applying and Managing Schema Changes Intermediate 38020 Data Seeding — HasData, Custom Seeds and Migration Seeds Intermediate 38030 CRUD Operations — Create, Read, Update and Delete with EF Core Intermediate 38040 Transactions — Explicit Transactions and SaveChanges Behaviour Intermediate 38050 Raw SQL and Stored Procedures — When to Go Beyond LINQ Intermediate

📂 Chapter 39: Repository Pattern and Unit of Work

39010 The Repository Pattern — Abstractions Over Data Access Intermediate 39020 Generic Repository — IRepository and Specification Pattern Intermediate 39030 Unit of Work — Coordinating Multiple Repositories Intermediate 39040 Testing with Repository Abstractions — In-Memory and Mocking Intermediate 39050 CQRS Intro — Separating Read and Write Models Intermediate

📂 Chapter 40: JWT Authentication and Role-Based Authorisation

40010 JWT Fundamentals — Structure, Claims and Validation Intermediate 40020 Token Generation — Issuing Access and Refresh Tokens Intermediate 40030 Protecting Endpoints — [Authorize] and Role-Based Access Intermediate 40040 Refresh Tokens — Sliding Expiry and Token Rotation Intermediate 40050 JWT Security Best Practices — Secrets, Storage and Revocation Intermediate

📂 Chapter 41: Middleware, Action Filters and Global Error Handling

41010 The Web API Middleware Pipeline — Request Context and Short-Circuiting Advanced 41020 Web API Action Filters — Logging, Rate Limiting and Idempotency Advanced 41030 Global Exception Handling — IExceptionHandler and ProblemDetails Advanced 41040 Request and Response Logging — Structured Logs for API Observability Advanced 41050 Health Checks, Readiness and Liveness Probes Advanced

📂 Chapter 42: API Versioning and Swagger/OpenAPI Documentation

42010 API Versioning Strategies — URL, Header and Query String Advanced 42020 Versioned Controllers — Maintaining Multiple API Versions Advanced 42030 Advanced OpenAPI — Schemas, Examples and Custom Operations Advanced 42040 NSwag — Generating TypeScript Clients for Angular Advanced 42050 API Documentation Best Practices — Contracts and Changelogs Advanced

📂 Chapter 43: Caching — In-Memory, Redis and Response Caching

43010 In-Memory Caching — IMemoryCache and Cache-Aside Pattern Advanced 43020 Distributed Caching — Redis with IDistributedCache and StackExchange.Redis Advanced 43030 Output Caching — ASP.NET Core 7+ Response Caching Advanced 43040 Cache Invalidation — Strategies and Patterns Advanced 43050 Caching Best Practices — TTL, Stampedes and Consistency Advanced

📂 Chapter 44: SignalR — Real-Time Web Communication

44010 SignalR Fundamentals — Hubs, Connections and Transport Fallback Advanced 44020 Hub Methods — Server Methods, Client Invocations and Groups Advanced 44030 Hub Authentication — JWT Bearer and User-Specific Channels Advanced 44040 Scaling SignalR — Redis Backplane for Multi-Server Deployments Advanced 44050 SignalR Patterns — Notifications, Live Updates and Presence Advanced

📂 Chapter 45: File Uploads, Email and Background Tasks

45010 File Uploads — IFormFile, Storage Abstraction and Validation Advanced 45020 Azure Blob Storage — Uploading, Downloading and Generating SAS URLs Advanced 45030 Email — Sending Transactional Email with MailKit and Templates Advanced 45040 Background Tasks — IHostedService, BackgroundService and Channels Advanced 45050 Hangfire — Persistent Job Scheduling and Retry Advanced

📂 Chapter 46: Performance, Rate Limiting and Security Hardening

46010 Rate Limiting — ASP.NET Core Built-In Policies and Per-User Limits Advanced 46020 Response Compression and Minimal API Performance Advanced 46030 Security Headers — HTTP Security Headers and HTTPS Enforcement Advanced 46040 API Security Hardening — OWASP Top 10 for Web APIs Advanced 46050 Performance Profiling — Benchmarking, Profiling and Production Tuning Advanced

📂 Chapter 47: Angular Setup, TypeScript and Project Structure

47010 Angular CLI and Workspace — ng new, Project Structure and Configuration Beginner 47020 TypeScript Essentials for Angular — Types, Interfaces and Generics Beginner 47030 Angular Modules vs Standalone Components — Angular 18 Architecture Beginner 47040 Feature-Based Project Structure — Organising a Large Angular App Beginner 47050 Angular 18 Features — Signals, Control Flow and Deferrable Views Beginner

📂 Chapter 48: Angular Components

48010 Component Anatomy — @Component, Template, Styles and Metadata Beginner 48020 @Input and @Output — Parent-Child Component Communication Beginner 48030 Component Lifecycle Hooks — ngOnInit, ngOnChanges and ngOnDestroy Beginner 48040 Content Projection and ViewChild — ng-content and Template References Beginner 48050 Change Detection — OnPush Strategy and Signal-Based Optimisation Beginner

📂 Chapter 49: Data Binding and Event Handling

49010 Interpolation and Property Binding — Displaying Data in Templates Beginner 49020 Event Binding — Handling User Interactions and the $event Object Beginner 49030 Two-Way Binding — ngModel and Signal-Based Alternatives Beginner 49040 Pipes — Transforming Data in Templates Beginner 49050 Template Reference Variables and Host Binding Beginner

📂 Chapter 50: Built-in Directives — NgIf, NgFor, NgClass, NgStyle

50010 New Built-In Control Flow — @if, @for, @switch in Angular 17+ Beginner 50020 Legacy *ngIf and *ngFor — Structural Directives Beginner 50030 NgClass and NgStyle — Dynamic Classes and Styles Beginner 50040 Custom Attribute Directives — Building Reusable DOM Behaviours Beginner 50050 ng-container, ng-template and Structural Directive Patterns Beginner

📂 Chapter 51: Angular Services and Dependency Injection

51010 Services and @Injectable — Creating Singleton Services Intermediate 51020 Dependency Injection Providers — useClass, useValue, useFactory, useExisting Intermediate 51030 Service Patterns — State Management, Error Handling and Caching Intermediate 51040 Hierarchical DI — Component-Level Providers and Scoped Services Intermediate 51050 NgModules — Understanding and Using Third-Party Module-Based Libraries Intermediate

📂 Chapter 52: HttpClient — Calling the ASP.NET Core Web API

52010 HttpClient Basics — GET, POST, PUT, DELETE and Response Types Intermediate 52020 HTTP Interceptors — Auth Headers, Error Handling and Retry Intermediate 52030 Typed HTTP Service — Complete API Client Pattern Intermediate 52040 File Upload and Download — FormData and Blob Responses Intermediate 52050 Loading States, Error Boundaries and Offline Handling Intermediate

📂 Chapter 53: Routing, Navigation, Guards and Lazy Loading

53010 Router Setup — Routes, RouterOutlet and Navigation Intermediate 53020 Route Guards — CanActivate, CanDeactivate and Resolve Intermediate 53030 Lazy Loading — loadComponent and loadChildren Intermediate 53040 Router State — ActivatedRoute, QueryParams and Navigation Extras Intermediate 53050 Router Patterns — Breadcrumbs, Scroll Restoration and Route Animations Intermediate

📂 Chapter 54: Template-Driven Forms

54010 NgModel and FormsModule — Wiring Up Template-Driven Forms Intermediate 54020 Template-Driven Validation — Built-In Validators and Error Display Intermediate 54030 Template-Driven Form Patterns — Multi-Step Forms and Dynamic Fields Intermediate 54040 Template-Driven vs Reactive Forms — Choosing the Right Approach Intermediate 54050 Template-Driven Forms with Angular Material Intermediate

📂 Chapter 55: Reactive Forms and Custom Validators

55010 FormGroup and FormControl — Building the Reactive Form Model Intermediate 55020 Reactive Validation — Built-In Validators, Composition and Error Display Intermediate 55030 Custom Validators — Sync and Async Validation Functions Intermediate 55040 Dynamic Forms — FormArray and Programmatic Control Management Intermediate 55050 Complete Post Form — Full BlogApp Create and Edit Form Intermediate

📂 Chapter 56: RxJS — Observables, Operators and Subjects

56010 Observables and Subscriptions — Cold vs Hot and the Subscription Lifecycle Advanced 56020 Core RxJS Operators — Transformation, Filtering and Combination Advanced 56030 Subjects — BehaviorSubject, ReplaySubject and EventBus Patterns Advanced 56040 RxJS Patterns — Search, Polling and Request Cancellation Advanced 56050 RxJS and Signals — Bridging with toSignal and toObservable Advanced

📂 Chapter 57: NgRx — Redux State Management for Angular

57010 Redux Pattern and NgRx — Actions, Reducers and Store Advanced 57020 Selectors and Effects — Derived State and Side Effects Advanced 57030 NgRx ComponentStore — Lightweight Local State Advanced 57040 NgRx Entity — Normalised Collection State Advanced 57050 NgRx Signal Store — Modern State Management with Signals Advanced

📂 Chapter 58: Angular Material and Responsive Layouts

58010 Angular Material Setup — Theming, Typography and Global Styles Intermediate 58020 Core Material Components — Navigation, Cards, Tables and Dialogs Intermediate 58030 Responsive Layout — Angular CDK Layout and Breakpoint Observer Intermediate 58040 Material Form Components — mat-form-field, mat-select and mat-datepicker Intermediate 58050 Material Feedback — Snackbar, Progress Indicators and Loading States Intermediate

📂 Chapter 59: Custom Directives, Pipes and Advanced Components

59010 Advanced Attribute Directives — Injecting Services, Input Aliasing and Exportable Directives Advanced 59020 Custom Structural Directives — *appIf, *appRepeat and Context Variables Advanced 59030 Advanced Pipes — Impure Pipes, Pipe Composition and Pipe with Injection Advanced 59040 Dynamic Components — ComponentRef, ViewContainerRef and CDK Portal Advanced 59050 Advanced Component Patterns — Control Value Accessor and Compound Components Advanced

📂 Chapter 60: Angular Security — JWT, Auth Guards and Best Practices

60010 Auth Service — JWT Storage, Token Refresh and Session Management Advanced 60020 Secure Token Storage — Memory vs localStorage vs httpOnly Cookies Advanced 60030 Auth Interceptor — Token Injection, Refresh and Retry Advanced 60040 XSS Prevention — Angular's Security Model and Safe HTML Handling Advanced 60050 Angular Security Checklist — CSRF, Route Protection and Pre-Deployment Review Advanced

📂 Chapter 61: SQL Server Setup — LocalDB, SSMS and sqlcmd

61010 SQL Server Editions — Developer, Express, LocalDB and Azure SQL Beginner 61020 SSMS and Azure Data Studio — Connecting and Managing the Database Beginner 61030 sqlcmd and Command-Line Tools — Scripting Database Operations Beginner 61040 Database Creation — CREATE DATABASE, File Groups and Configuration Beginner 61050 Connection Strings — LocalDB, Full Instance and Azure SQL Beginner

📂 Chapter 62: T-SQL Fundamentals — DDL and DML

62010 T-SQL Data Types — Choosing the Right Type for Each Column Beginner 62020 DDL — CREATE TABLE, ALTER TABLE and Constraints Beginner 62030 DML — INSERT, UPDATE, DELETE and OUTPUT Beginner 62040 Transactions — BEGIN TRANSACTION, COMMIT, ROLLBACK and TRY/CATCH Beginner 62050 BlogApp Schema — Complete DDL Script and Seed Data Beginner

📂 Chapter 63: Querying — SELECT, WHERE, ORDER BY and GROUP BY

63010 SELECT and WHERE — Retrieving and Filtering Data Beginner 63020 ORDER BY and Pagination — Sorted Results and OFFSET/FETCH Beginner 63030 Aggregate Functions and GROUP BY — Counting, Summing and Grouping Beginner 63040 Built-In Functions — String, Date and Conversion Functions Beginner 63050 BlogApp SELECT Queries — Published Posts, Search and Analytics Beginner

📂 Chapter 64: Joins, Subqueries and Common Table Expressions

64010 INNER JOIN and OUTER JOINs — Combining Related Tables Intermediate 64020 Subqueries — Correlated, Derived Tables and EXISTS Intermediate 64030 Common Table Expressions — WITH Clause for Readable Recursive Queries Intermediate 64040 Window Functions — ROW_NUMBER, RANK, LEAD and LAG Intermediate 64050 Advanced BlogApp Queries — CTEs, Window Functions and Analytical Patterns Intermediate

📂 Chapter 65: Stored Procedures and User-Defined Functions

65010 Stored Procedures — CREATE, ALTER, Parameters and Error Handling Intermediate 65020 Stored Procedure Patterns — Upsert, Paging and Audit Logging Intermediate 65030 Scalar Functions — Reusable Calculations and Formatting Intermediate 65040 Table-Valued Functions — Inline TVFs and Multi-Statement TVFs Intermediate 65050 Stored Procedures vs ORM — Choosing the Right Approach for the BlogApp Intermediate

📂 Chapter 66: Views, Triggers and Sequences

66010 Views — CREATE VIEW, Updatable Views and Indexed Views Intermediate 66020 INSTEAD OF Triggers — Intercepting INSERT, UPDATE and DELETE Intermediate 66030 AFTER Triggers — Audit Logging and Cascading Operations Intermediate 66040 Sequences — CREATE SEQUENCE and Application-Level ID Generation Intermediate 66050 Views, Triggers and Sequences — Production Patterns and EF Core Integration Intermediate

📂 Chapter 67: Indexes, Execution Plans and Query Optimisation

67010 Index Fundamentals — Clustered, Non-Clustered and Composite Indexes Advanced 67020 Reading Execution Plans — Identifying Scans, Seeks and Key Lookups Advanced 67030 Query Optimisation — Rewriting Queries for Better Execution Plans Advanced 67040 Index Maintenance — Fragmentation, Rebuild and Reorganise Advanced 67050 BlogApp Index Strategy — Designing and Validating the Complete Index Set Advanced

📂 Chapter 68: Transactions, Concurrency and Isolation Levels

68010 Isolation Levels — READ COMMITTED, SNAPSHOT and SERIALIZABLE Advanced 68020 Locking — Shared, Exclusive and Update Locks Advanced 68030 Deadlocks — Detection, Prevention and Resolution Advanced 68040 Optimistic Concurrency — rowversion, Timestamp and Application Patterns Advanced 68050 Concurrency Patterns — Preventing Double Submissions and Race Conditions Advanced

📂 Chapter 69: Entity Framework Core Deep Dive with SQL Server

69010 EF Core SQL Generation — What EF Core Sends to SQL Server Advanced 69020 EF Core Performance — N+1 Queries, Projections and Compiled Queries Advanced 69030 Advanced Migrations — Custom SQL, Data Migrations and Squashing Advanced 69040 Advanced EF Core Mapping — Value Objects, Owned Types and Table Splitting Advanced 69050 EF Core Interceptors — Audit Logging, Soft Delete and Query Tagging Advanced

📂 Chapter 70: SQL Server Security, Backup and Maintenance

70010 SQL Server Security — Logins, Users, Roles and Row-Level Security Advanced 70020 Backup and Restore — Full, Differential and Transaction Log Backups Advanced 70030 SQL Server Monitoring — DMVs, Extended Events and Performance Baselines Advanced 70040 Database Maintenance — DBCC, Statistics and Automated Jobs Advanced 70050 Production Readiness — Azure SQL, Connection Resilience and Pre-Deployment Checklist Advanced

📂 Chapter 71: Connecting Angular to ASP.NET Core — CORS and Environments

71010 CORS Configuration — Allowing Angular to Call the ASP.NET Core API Intermediate 71020 Angular Environments — environment.ts, Build Configurations and API URLs Intermediate 71030 Angular Development Proxy — Eliminating CORS in Local Development Intermediate 71040 API Client Service — Typed HttpClient Service with Error Handling Intermediate 71050 End-to-End Connection — Verifying the Angular to API Pipeline Intermediate

📂 Chapter 72: JWT Auth End-to-End — Angular Login to API Token

72010 ASP.NET Core JWT Setup — Issuing Tokens on Login Intermediate 72020 Angular Login Flow — LoginComponent, AuthService and Token Storage Intermediate 72030 Auth Interceptor End-to-End — Injecting Tokens and Handling 401s Intermediate 72040 Route Guards End-to-End — Protecting Admin Routes with Roles Intermediate 72050 Auth End-to-End Verification — Testing the Complete Auth Pipeline Intermediate

📂 Chapter 73: Full CRUD — Angular + Web API + EF Core + SQL Server

73010 API CRUD Endpoints — Posts Controller with Validation and Authorization Intermediate 73020 Angular Post List — Pagination, Filtering and State Management Intermediate 73030 Angular Post Detail — Full Post View with Related Content Intermediate 73040 Angular Admin CRUD — Post Create, Edit and Delete Intermediate 73050 Full CRUD Verification — End-to-End Data Flow from Angular to SQL Server Intermediate

📂 Chapter 74: File Uploads and Image Display Full Stack

74010 ASP.NET Core File Upload — IFormFile, Validation and Storage Intermediate 74020 Azure Blob Storage — Production File Storage with SAS URLs Intermediate 74030 Angular File Upload — Drag-and-Drop, Progress Tracking and Preview Intermediate 74040 Image Display — Responsive Images, Lazy Loading and CDN Optimisation Intermediate 74050 File Upload End-to-End — Cover Image and Avatar Full Flow Intermediate

📂 Chapter 75: SignalR Real-Time — Angular Client to .NET Hub

75010 ASP.NET Core SignalR Hub — Groups, Authentication and Method Invocation Advanced 75020 Angular SignalR Service — HubConnection, Reconnection and RxJS Integration Advanced 75030 Live Comments — Real-Time Comment Feed with Optimistic Updates Advanced 75040 SignalR Notifications — User-Specific Push and Admin Broadcasts Advanced 75050 SignalR End-to-End — Verifying Real-Time Flow and Scaling Considerations Advanced

📂 Chapter 76: Error Handling, Interceptors and Global UX Patterns

76010 ASP.NET Core Global Error Handling — ProblemDetails and Exception Middleware Advanced 76020 Angular HTTP Interceptors — Logging, Loading State and Retry Advanced 76030 Angular Error Boundaries — Global Error Handler and Component Error UI Advanced 76040 Global Loading State and Optimistic UX Patterns Advanced 76050 Part 7 Completion — Full Stack Integration Summary and Production Readiness Advanced

📂 Chapter 77: Testing Strategy — Pyramid, Tools and Best Practices

77010 The Test Pyramid — Unit, Integration and End-to-End Tests Intermediate 77020 C# Testing Tools — xUnit, FluentAssertions, Moq and Bogus Intermediate 77030 Angular Testing Tools — Jasmine, Karma, TestBed and Testing Library Intermediate 77040 What to Test — Coverage Strategy and Finding the Right Test Boundary Intermediate 77050 TDD Workflow — Red-Green-Refactor for the BlogApp Intermediate

📂 Chapter 78: Unit Testing C# with xUnit and FluentAssertions

78010 xUnit Fundamentals — Facts, Theories and Test Organisation Intermediate 78020 FluentAssertions — Readable Assertions for Every Type Intermediate 78030 Testing the BlogApp Service Layer — PostsService and AuthService Intermediate 78040 Testing Edge Cases — Boundary Values, Null Handling and Concurrency Intermediate 78050 Test Data Builders — Builder Pattern and AutoFixture for Maintainable Test Data Intermediate

📂 Chapter 79: Mocking Dependencies with Moq and NSubstitute

79010 Moq Fundamentals — Setup, Returns, Callback and Verify Intermediate 79020 Advanced Moq Patterns — Protected Members, Recursive Mocks and Moq.AutoMock Intermediate 79030 NSubstitute — Simpler Mocking Syntax for the BlogApp Intermediate 79040 Mocking HttpClient — Testing Services That Make External HTTP Calls Intermediate 79050 Test Doubles Patterns — When to Mock vs Stub vs Fake vs Spy Intermediate

📂 Chapter 80: Integration Testing ASP.NET Core Web API

80010 WebApplicationFactory — In-Memory API Testing Advanced 80020 Testing API Endpoints — Requests, Responses and Status Codes Advanced 80030 Test Database Strategies — Isolation, Seeding and Cleanup Advanced 80040 Authentication Integration Tests — JWT, Roles and Forbidden Access Advanced 80050 Integration Test Patterns — Shared Fixtures, Helpers and Maintainability Advanced

📂 Chapter 81: Unit Testing Angular with Jasmine and Karma

81010 Jasmine Fundamentals — describe, it, expect and Spies Intermediate 81020 Testing Angular Services — HttpClient, Signals and RxJS Observables Intermediate 81030 Testing Pipes, Validators and Pure Functions Intermediate 81040 Karma Configuration — Headless Chrome, Code Coverage and CI Intermediate 81050 Jest for Angular — Faster Unit Tests with jest-preset-angular Intermediate

📂 Chapter 82: Angular Component and Service Testing

82010 TestBed Component Testing — Rendering, Inputs and Outputs Advanced 82020 Testing Angular Signals — State, Effects and Computed Values Advanced 82030 Testing Reactive Forms — Validation, Submission and Error Messages Advanced 82040 Testing Routing — Navigation, Guards and Route Parameters Advanced 82050 Component Testing Patterns — Angular Testing Library and Page Objects Advanced

📂 Chapter 83: End-to-End Testing with Cypress

83010 Cypress Setup — Installation, Configuration and First Test Advanced 83020 Cypress Selectors and Interactions — Best Practices for Stable Tests Advanced 83030 Cypress Authentication — Login Flow and Session Management Advanced 83040 BlogApp E2E Flows — Critical User Journeys Advanced 83050 Cypress in CI — GitHub Actions, Artifacts and Parallel Execution Advanced

📂 Chapter 84: Coverage, CI Pipeline and Test Automation

84010 Code Coverage — Measuring, Reporting and Setting Meaningful Thresholds Advanced 84020 GitHub Actions CI Pipeline — Complete Multi-Stage Workflow Advanced 84030 Test Automation Quality — Preventing Flaky Tests and Maintaining Test Suites Advanced 84040 Mutation Testing — Verifying Test Quality with Stryker.NET Advanced 84050 Part 8 Completion — Testing Summary and Part 9 Preview Advanced

📂 Chapter 86: Backend — Domain, Application and Infrastructure Layers

86010 Complete Domain Model — Listings, Users and Contact Requests Advanced 86020 Application Layer — Command and Query Handlers Advanced 86030 Infrastructure — EF Core Schema, Repositories and Migrations Advanced 86040 API Controllers — Thin Adapters Over MediatR Advanced 86050 Backend Integration Tests — Testing the Full Clean Architecture Stack Advanced

📂 Chapter 87: Authentication, Roles and Listings Management

87010 ASP.NET Core Identity — Roles, Claims and Profile Extension Advanced 87020 Listing Ownership and Authorisation — Policies and Resource Guards Advanced 87030 Admin and Moderation — Listing Approval and User Management Advanced 87040 My Listings Dashboard — Angular Admin View for Sellers Advanced 87050 Seller Registration and Verification Flow Advanced

📂 Chapter 88: Angular Frontend — Browse, Search and Post Listings

88010 Angular App Architecture — Feature Modules, Routing and State Advanced 88020 Browse and Search — Listings Grid, Filters and Map View Advanced 88030 Create Listing Wizard — Multi-Step Form with Photo Upload Advanced 88040 Listing Detail — Photo Gallery, Contact Form and Seller Profile Advanced 88050 Search State, URL Persistence and Mobile UX Patterns Advanced

📂 Chapter 90: Deployment, CI/CD and Go-Live

90010 Azure Infrastructure — App Service, SQL, Redis and Storage Advanced 90020 GitHub Actions CD Pipeline — Build, Test and Deploy to Azure Advanced 90030 Database Migrations — Safe Schema Changes in Production Advanced 90040 Monitoring, Alerting and Incident Response Advanced 90050 Series Completion — Full-Stack Journey Review and Next Steps Advanced