High-Performance .NET
Make .NET code faster and lighter on memory, with a BenchmarkDotNet measurement behind every change. You work through the garbage collector, async and parallel code and distributed caching, then process a billion-row file.
- Milestone 1
How the runtime works
Explain how the garbage collector manages the heap, and how value types, reference types, lambdas and LINQ use it.
- Milestone 2
Measuring
Write BenchmarkDotNet benchmarks, read their results and memory diagnostics, and compare runtime versions.
- Milestone 3
Concurrency
Use async/await, the Task and Parallel classes, channels and PLINQ, and choose between them for I/O and CPU work.
- From Zero to Hero: Asynchronous Programming in C#Covers async/await down to the generated code and .NET internals, the base for the parallel course.3h 53m
- From Zero to Hero: Parallel Programming in C#Async keeps threads free during I/O; this covers CPU-bound work with Task, Parallel, concurrent collections, channels and PLINQ.3h 56m
- Milestone 4
Caching
Add in-memory, distributed and hybrid caches to a .NET app, keep them in sync, and protect them from cache stampedes and mass invalidations.
- Milestone 5
Put it together
Process a billion-row file in .NET with streams, multithreading, memory-mapped files and SIMD.

