
Explore advanced features of the dotnet framework, including the garbage collector, compiler, and C-Sharp execution, with insights on object finalisation and performance. Learn in any order and ask questions.
Set up dotnet core 2.1 and dnSpy to examine code, then use Benchmark.NET to measure performance with the benchmark attribute and review GC and location data.
Learn C# syntax and exception filters per ECMA 335, compare catch blocks with filters that use messages or custom properties, and study their compilation into code.
Log exceptions with exception filters to preserve the stack, reduce unwinding, and improve debugging and performance compared to traditional catch blocks.
Explore the ref keyword in C# for passing by reference and compare it with by-value. Learn about managed pointers, interior object references, and how the garbage collector handles them.
Learn ref returns in C# 7 to return values by reference, enabling in-place updates for value and reference types and improving performance when working with large data like matrices.
Explore span<T> in .NET to represent contiguous memory across managed, unmanaged, and stack memory, enabling unified APIs, slicing, and high-performance interop with stackalloc and pointers.
Explore span<T> for string parsing in C# and .NET, compare allocation-free slicing with substring, and benchmark performance and memory usage when extracting integers from strings.
Explore how finalize, finalizers, and finalization work in C# and the GC, including the finalizers thread, the finalization queue, and why finalizers require minimal work.
Explore the practical impact of finalizers on the garbage collector, showing how finalizers affect memory usage, how to suppress finalization, and why work in finalizers should be minimized.
Learn how to use the IDisposable interface to release unmanaged resources with Dispose, and compare it to finalizers, using a using block to ensure proper cleanup.
Implement a class that wraps managed and unmanaged resources, and apply the dispose pattern with dispose and finalizer to release memory promptly and safely.
Explore how C# structs follow sequential layout, where field order, alignment by the largest member, and padding determine offsets and the struct size.
Learn how StructLayoutAttribute controls struct layout in C#, comparing auto, sequential, and explicit layouts, and using PackSize and FieldOffset to optimize alignment and create unions.
Do you want to take your .NET development skills to the next level? Do you already write code in C#, and you wonder what happens under the hood when the CLR executes your C# code?
If so, then this course is for you!
This course is designed for C#/.NET developers who want to take their knowledge to the next level. We will cover advanced topics like:
Making a compact course without any fluff and noise was one of the highest priorities during the creation process. Therefore, the videos are short and self-contained. Even if you only have 10 or 15 minutes every day, this course is still a perfect fit for you!
You can take the sections within the course in any order. In case your favorite topic is not what we cover in the first section feel free to start wherever you want. On the other hand, videos within the sections are in order, so in each section you should start with the first video.
All right, let’s get started and become .NET experts together!