🎓 Welcome to Advanced C#
Go beyond writing correct C# to writing fast, concurrent, and well-architected C#. This course dives into the type system, threading, the memory model, and the runtime itself.
📚 About This Course
You already write robust, modern C# — exceptions, generics, LINQ, records, async, and tests. This course takes you under the hood: how the language's advanced features really work, how to run work safely across many threads, how .NET manages memory, and how to structure code that scales.
The focus is on the language and runtime — skills that apply no matter which framework you build with. Expect precise mental models, real performance measurements, and concrete, runnable examples.
What You'll Learn
- Generic variance (
in/out) and advanced constraints - Extension methods, fluent APIs, and custom iterators with
yield - Threads, tasks, the thread pool, and how to keep shared data safe
- Data parallelism with
Paralleland PLINQ - Cancellation, async streams (
IAsyncEnumerable), channels, and async performance - The memory model: value vs reference types, stack vs heap, and boxing
- High-performance, low-allocation code with
Span<T>and benchmarking - Reflection, attributes, and dependency injection for flexible architecture
- A capstone that combines performance, concurrency, and clean design
Who This Course Is For
- Developers who finished Intermediate C# (or have equivalent experience)
- Engineers who want to write high-performance, concurrent, production-grade C#
- Anyone ready to understand why and how .NET behaves the way it does
📖 Course Modules
Module 1: Advanced Language Features
Push the type system and language further with variance, extension methods, and iterators.
Module 2: Concurrency and Parallelism
Run work on multiple threads correctly and safely.
Module 3: Advanced Asynchrony
Master cancellation, async streams, and the performance details of async.
Module 4: Performance and Memory
Understand how .NET uses memory and write high-performance, low-allocation code.
Module 5: Metaprogramming and Architecture
Inspect and extend code at runtime, and structure large applications.
✅ Prerequisites
This is an advanced course. You should be comfortable with everything in Intermediate C#:
- Exceptions, generics, and the standard collections
- Delegates, lambdas, events, and LINQ
- Records, pattern matching, and nullable reference types
- Files, JSON,
async/await,HttpClient, and unit testing
If any of these are unfamiliar, work through Intermediate C# first — this course builds directly on it.
Required Software
- The .NET SDK and a code editor (VS Code or Visual Studio)
- For the benchmarking lesson: the BenchmarkDotNet NuGet package (we'll walk through adding it)
📚 Additional Resources
Official Documentation
Useful Links
Support
If you have questions or need help:
- Visit the contact page
- Community Q&A: Stack Overflow (C# tag)