4.15 out of 5
4.15
200 reviews on Udemy

High Performance Coding with .NET Core and C#

Learn how to write high performance and scalable .NET Core and ASP.NET Core applications in C#
Instructor:
Gergely Kalapos
1,986 students enrolled
English [Auto-generated]
Get an overview about the current stage of the .NET platform with focus on .NET Core, ASP .NET Core, and C# 7 with their performance aspects
Get to know tools which are essential to measure the performance of a .NET Core application: Visual Studio Performance Tools, PerfView, BenchmarkDotNet, Perf and LTTng on Linux, Prefix, MiniProfiler
Performance characteristics of value types and reference types, the effect of async/await on performance, and performance of collections in the base library
Behind the scenes knowledge about C# 7: you will see what the compiler generates from C# 7 code and what performance implications this has on your application
New performance related APIs like Span, ArrayPool
Data access performance with Entity Framework Core
Ahead of time compilation for .NET Core with CrossGen, and removing dead code with the .NET IL Linker
Production monitoring for .NET Core and ASP .NET Core with Application Insights and Dynatrace

A few years ago, Microsoft decided to radically redefine the .NET platform. An open-source, cross-platform, high performance flavor of the .NET framework was created: this is .NET Core. Additionally, C#, the most widely used .NET programming language also evolved over the years. These new developments include many performance improvements.

The goal of the course is to give you deep understanding about these performance improvements. By applying the knowledge from this course, you will be able to measure and optimize the performance of .NET Core (including ASP.NET Core), C# applications.

After a short wrap-up on .NET Core the course introduces you to the first pillar of the performance topic: measuring performance. You will learn to use tools that you can apply to measure the performance of your code running on .NET Core. Then we will focus on some important performance tricks like reducing the pressure on the GC by using value types or choosing the right collection for the given problem. After that we will see what the compiler does behind the scenes when it compiles your C# 7 code and what performance implications this has. We will talk about some new performance related APIs like ArrayPool and Span and we will also look into the performance aspects of Entity Framework Core. We will talk about the ahead of time compilation story for .NET with CrossGen and IL trimming with the .NET IL Linker. We will finish the course by learning about production performance monitoring for .NET Core. 

Goal of the course 

  • Understanding why .NET Core and ASP.NET Core are great platforms to create high performance applications  
  • Learning about tools that can measure the performance of your .NET Core code: Visual Studio Performance Tools, BenchmarkDotNet, MiniProfiler, Stackify Prefix, LTTng and Perf on Linux, ETW and PerfView
  • Understand the latest language features of C# and how they affect performance
  • Advanced tools to improve the performance of your .NET Core and ASP.NET Core applications: Span<T>, ArrayPool<T>, ASP.NET Core Precompiled Views, Entity Framework Core performance, .NET IL Linker, AOT compilation with CrossGen. 
  • Performance monitoring in production for .NET Core and ASP.NET Core: Application Insights and Dynatrace

Course style

The course is a mix of theory and practice. Tools and concepts with their theoretical background will be introduced with slides and then the theoretical knowledge will be applied in demos. 

 

Setting the Stage

1
Course Overview
2
Note for .NET Core experts
3
.NET Core History - Performance
4
.NET Core Concepts and Definitions

Measure Performance During Development Part 1

1
Measuring CPU
2
Measuring Memory
3
Visual Studio Performance Tools - PerfTips and Profiler
4
Visual Studio Performance Tools – The Diagnostic Tools Window

Measure Performance During Development Part 2

1
Event Tracing: ETW and PerfView
2
Micro Benchmarking with BenchmarkDotNet
3
.NET Core Performance Diagnostic on Linux
4
Performance Monitoring on the Developer Machine with Stackify Prefix
5
Performance Monitoring on the Developer Machine with MiniProfiler

Make your Code Faster – General Tips for .NET Developers

1
Value Types vs. Reference Types and Reducing Pressure on the GC
2
Value Types vs. Reference Types and Reducing Pressure on the GC - Demo
3
Saving Threads with async/await
4
Saving Threads with async/await – Demo
5
Choosing the Right Collection
6
Choosing the Right Collection - Demo

C# 7 Performance

1
Performance Impact of C# 7 Features
2
Avoid Heap Allocations with Local Functions
3
Make ValueTypes Faster with ref return
4
The Performance Characteristics of the C# 7 Tuple Feature
5
Optimization of async-methods with ValueTask
6
Pattern matching and Performance

New Performance Related APIs

1
Reusing Arrays with ArrayPool
2
Accessing all Types of Memory Safely and Efficiently with Span
3
Accessing all Types of memory Safely and Efficiently with Span - Demo

Data Access Performance: Entity Framework Core

1
Make faster Queries with Entity Framework Core
2
Loading Dependent Entities Efficiently
3
EF Core Performance: Maximum Length, Client Side Execution, Change Tracking

.NET Core Specific Performance Tools and Configurations

1
Pre-JIT .NET Core Applications with CrossGen
2
Make your .NET Core Application Smaller with Mono’s Linker
3
Faster Startup with ASP.NET Core Precompiled Views

Performance Monitoring in Production for .NET Core

1
Enabling Application Insights for ASP.NET Core Applications
2
Tracking Slow Requests and Performance Testing with Application Insights
3
Tracking Custom Dependencies with Application Insights
4
Monitoring .NET Core Applications with Dynatrace
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.2
4.2 out of 5
200 Ratings

Detailed Rating

Stars 5
74
Stars 4
94
Stars 3
24
Stars 2
5
Stars 1
3
6e2f326877472a3c5d8c16a1741b027c
30-Day Money-Back Guarantee

Includes

6 hours on-demand video
1 article
Full lifetime access
Access on mobile and TV
Certificate of Completion