.NET Diagnostics Expert

online course

Connect the dots when diagnosing .NET apps

Price:

429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:

Days
Hours
Minutes
Seconds

.NET Diagnostics Expert course in numbers:

321 attendees

only 1 return

48 lessons

including
11 homework assignments

1626 minutes

including
247 of webinars

607 slides

Course description

Have you ever struggled with debugging your application on production environment? Or, maybe you've spent countless hours trying to reproduce the same bug on the development environment? We did, and we know how painful it is! Or maybe you was supposed to analyze the sudden application hang, without any helpful logs available? We were there too! Mystic exceptions that happen only on that particular Client machine are also well known to us. As well as profiling the application to find its performance bottleneck.

Testing shows the presence of errors in a product, but "cannot prove that there are no defects". As long as we write software, there will be bugs in it. And we, as developers, are reponsible for finding and fixing those bugs. Moreover, the issue is not always caused by our software directly. Sometimes it is some misconfiguration of the system, web server, you name it... All this implies that felling comfortable as a .NET developer is almost impossible without understanding tools and techniques used for diagnosing a wide spectrum of issues we can meet during our every day work.

We prepared .NET Diagnostics Expert online course to help you gain that knowledge. It is 11 solid weeks of learning through which we will show you myriad of powerful tools used in thoroughly prepared .NET diagnostics scenarios. They cover various Windows/Linux-based cases when using .NET Framework & Core, everything beyond a trivial debugging you probably know already. To practice possessed knowledge, every module has also a prepared homework. Moreover, to deepen your knowledge we've invited three super-debugging-ninjas (Kevin Gosse, Christophe Nasarre and Pavel Yosifovich) as Mentors of our course. As participant you will have an opportunity to access extra content from the Mentors!

Price:

429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:

Days
Hours
Minutes
Seconds

Course agenda

1

Debugging

  1. The construction of the managed/native debugger
  2. Symbols, indexing, building your own symbol server
  3. Making Nuget packages easier to debug (SourceLink)
  4. Configuring the debugger in Visual Studio and Visual Studio Code
  5. WinDbg and lldb with SOS - .NET debugging extension
  6. CLI Diagnostic Tools for .NET
  7. Homework
2

Tracing

  1. Event Tracing for Windows (ETW): how it works, interesting system and .NET event sources, how to collect the events
  2. perf, LTTng and eBPF for Linux: how it works, how to collect the events
  3. Event Pipes - modern .NET tracing: how they work, how to collect the events
  4. Homework
3

Windows and Linux diagnostics sources

  1. Process monitoring (Process Hacker/Process Explorer, top/htop, proc-fs)
  2. Process and system tracing tools (Process Monitor, strace)
  3. Monitoring containerized processes (Docker)
  4. Examining system logs
  5. Homework
4

.NET diagnostics case - High CPU usage

  1. How CPU sampling works, analyzing traces under Windows and Linux
  2. Thread Time profiling: context switches and thread scheduling/dispatching
  3. Homework
5

.NET diagnostics case - Deadlocks

  1. Synchronization primitives: Mutex, Semaphore, WaitEvents, Monitor, SpinWait
  2. Looking for a deadlock in a memory dump
  3. Diagnosing deadlocks with tracing
  4. Homework
6

.NET diagnostics case - Network issues - TCP, UDP

  1. Monitoring connections with system tools (netstat, TcpView, ss)
  2. Basic diagnosing with PsPing and NC
  3. Recording network traces (Wireshark, tcpdump)
  4. Analyzing network traces in Wireshark
  5. Collecting network traces in .NET applications
  6. Homework
7

.NET diagnostics case - Network issues - DNS, HTTP(s)

  1. Diagnosing DNS configuration (host, nslookup, dig)
  2. Monitoring HTTP requests in ASP.NET/ASP.NET Core applications
  3. Using network proxies and writing our own network proxy
  4. Detecting problems with TLS certificates
  5. Creating a load-balancer (reverse-proxy) for testing purposes
  6. Homework
8

.NET diagnostics case - Application execution issues

  1. Monitoring applications with dotnet-counters
  2. Diagnosing assembly binding issues
  3. Diagnosing exceptions using tracing and memory dumps
  4. Cases of debugging in the production
  5. Homework
9

.NET diagnostics case - Miscellaneous issues

  1. Memory issues (VMMap, PerfView)
  2. File I/O issues
  3. System issues: drivers, Windows registry, COM, services/daemons
  4. Homework
10

Diagnostics logs in the application

  1. Interacting with the debugger (Debug class)
  2. Validating the code execution (Code Contracts, assertions)
  3. Adding custom trace sources to the application
  4. Homework
11

Writing custom diagnostics tool

  1. Using ClrMD to analyze memory dumps
  2. Writing a custom tracer based on EventPipe
  3. Homework

What do I get?

🔍 Access to 11-weeks .NET Diagnostics Expert on-line course - Access to full .NET Diagnostics course material

🔍 Content from mentors - Extra content sessions with international Mentors of that program, who are world-class .NET diagnostics experts. Sessions are recorded and shared with you on the platform.

🔍 Access to the course platform - The access to the platform that not only keeps recordings, but also allows you to discuss and contact with instructor and other participants of that course.

🔍 Access to the repository - Besides the access to the recordings, ability to contact others and watch extra content from Mentors of the programme you receive the access to repository that includes code examples.

Price:

429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:

Days
Hours
Minutes
Seconds

Course authors

Sebastian Solnica


Engineer with more than ten years of experience in .NET development, OSS contributor, blogger


I am deeply interested in debugging, profiling, and application security. Besides diagnostics, I often use debuggers and profilers to understand better how things work internally. Thus, reading call stacks, network logs, and system traces are among my favorite activities :) I'm also one of the Warsaw .NET Group leaders and an open source contributor. I mostly publish diagnostics tools and scripts, which you may find on my GitHub profile (linked above). From time to time, I also post diagnostic-related articles on my blog. When I'm not working, I enjoy reading books and walking in the forests.

Course mentors

Kevin Gosse


Microsoft MVP, Staff Engineer at Datadog


Passionate about debugging, there are few things Kevin likes more than digging into an obscure bug and methodically uncovering the causes. He also enjoys performance optimization, that he's lucky enough to do as a full-time job. Microsoft MVP, blogger, and speaker at .NET conferences.

Christophe Nasarre


Microsoft MVP, developer and speaker


In addition to developing and shipping software on Microsoft stacks for 30 years, Christophe has been working as a technical reviewer for many publishing companies since 1996 on books such as 'CLR via C#' and the last editions of 'Windows Internals'. He is providing tools and insights on .NET and troubleshooting via his awesome diagnostics blog posts and his open source projects on GitHub: you might be surprised how much code you could reuse.

Pavel Yosifovich


Developer, trainer, author and speaker


Pavel is a developer, trainer, author, and (sometimes) speaker. He's the co-author of 'Windows Internals 7th edition Part 1', and author of 'Windows Kernel Programming', 'Windows 10 System Programming Part 1' and 'WPF Cookbook 4.5'. Pavel works on many open-source tools on his Github repo, especially geared towards understanding low-level mechanisms. He has also published courses on Pluralsight and Pentesteracademy.

Price:

429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:

Days
Hours
Minutes
Seconds

Questions and answers

🔍 Which programming language will be used in examples?

All the examples as well as all our work will be done in C#.

🔍 Which version of .NET will be used in samples?

We will work on .NET Core 3.1/.NET 5, showing differences with .NET Framework when needed.

🔍 When does the course begin and for how long does it last?

The course is now available and the sale is unlimited in time.

🔍 What is the format of that course?

It is a video course. Recordings are uploaded to the platform. After signing in with your login and password, you have access to your account. Besides the recordings, you’ll also receive an invitation to our Community where you can communicate with an instructor and other participants. All accesses will be sent to you after the purchase.

🔍 How long will I have the access to the course?

You will receive life-long access to that edition of the course, including its updates.

🔍 What if I would not be satisfied with the course?

If you watch less than 30% of the course and decide that the course is not for you, you will receive a refund. You have 30 days to decide. Just write to contact[at]dotnetos.org, and we will return you 100% value.

🔍 Will I receive all the course material at once?

Yes. All material is available immediately. We recommend watching one module per week to not overwhelm you.

🔍 Will I receive an invoice?

Yes, you will receive a VAT invoice with your purchase, if it applies. It will be sent to you within few days to the e-mail address provided during the order.

🔍 How can I pay for that course?

Payment is done with the use of our on-line shop. Each type of payment supported by it is ok for us.

🔍 Can I pay later, on installments, etc.?

Unfortunatelly, no.

🔍 How many people can access one course account?

The access is given to one person, using an address provided during the purchase. If you are interested in buying more accesses please contact us using contact[at]dotnetos.org e-mail address.

🔍 What if I have a problem with something or something is unclear?

Write to us with that e-mail address: contact[at]dotnetos.org.

Share!

If you think that .NET Diagnostics Expert is a nice dose of knowledge, share it with friends. Just use one of the buttons below!
Thank you!