High Performance Coding with .NET Core and C#
4.2 (427 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,033 students enrolled

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#
4.2 (427 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,033 students enrolled
Created by Gergely Kalapos
Last updated 12/2017
English
English [Auto]
Current price: $83.99 Original price: $119.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • 1 article
  • 36 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • 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<T>, ArrayPool<T>
  • 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
Course content
Expand all 38 lectures 06:18:41
+ Setting the Stage
4 lectures 26:36
Note for .NET Core experts
00:30
.NET Core History - Performance
08:32
.NET Core Concepts and Definitions
11:00
+ Measure Performance During Development Part 1
4 lectures 45:57
Measuring CPU
12:55
Measuring Memory
12:00
Visual Studio Performance Tools - PerfTips and Profiler
11:15
Visual Studio Performance Tools – The Diagnostic Tools Window
09:47
+ Measure Performance During Development Part 2
5 lectures 01:14:35
Event Tracing: ETW and PerfView
17:53
Micro Benchmarking with BenchmarkDotNet
13:23
.NET Core Performance Diagnostic on Linux
14:09
Performance Monitoring on the Developer Machine with Stackify Prefix
14:10
Performance Monitoring on the Developer Machine with MiniProfiler
15:00
+ Make your Code Faster – General Tips for .NET Developers
6 lectures 55:43
Value Types vs. Reference Types and Reducing Pressure on the GC
12:03
Value Types vs. Reference Types and Reducing Pressure on the GC - Demo
08:04
Saving Threads with async/await
08:35
Saving Threads with async/await – Demo
07:03
Choosing the Right Collection
11:07
Choosing the Right Collection - Demo
08:51
+ C# 7 Performance
6 lectures 54:26
Performance Impact of C# 7 Features
06:58
Avoid Heap Allocations with Local Functions
10:14
Make ValueTypes Faster with ref return
13:40
Optimization of async-methods with ValueTask
08:36
Pattern matching and Performance
08:21
+ New Performance Related APIs
3 lectures 25:01
Reusing Arrays with ArrayPool<T>
10:49
Accessing all Types of Memory Safely and Efficiently with Span<T>
09:08
Accessing all Types of memory Safely and Efficiently with Span<T> - Demo
05:04
+ Data Access Performance: Entity Framework Core
3 lectures 34:30
Make faster Queries with Entity Framework Core
11:57
Loading Dependent Entities Efficiently
10:31
EF Core Performance: Maximum Length, Client Side Execution, Change Tracking
12:02
+ .NET Core Specific Performance Tools and Configurations
3 lectures 26:58
Pre-JIT .NET Core Applications with CrossGen
10:53
Make your .NET Core Application Smaller with Mono’s Linker
08:55
Faster Startup with ASP.NET Core Precompiled Views
07:10
+ Performance Monitoring in Production for .NET Core
4 lectures 34:54
Enabling Application Insights for ASP.NET Core Applications
10:05
Tracking Custom Dependencies with Application Insights
09:19
Monitoring .NET Core Applications with Dynatrace
08:45
Requirements
  • You should have some experience with the .NET framework
  • You already created at least 1 application either with .NET Core or with the .NET Classic framework
  • A little bit of .NET Core experience helps, but if you have solid a solid .NET Classic background, then it's also fine
Description

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. 

 

Who this course is for:
  • If you are a .NET Core developer and you want to make sure your application does not break under production load then this course is for you!
  • Furthermore, if you are interested in performance and you like looking behind the scenes and understanding what really happens in your application then you will also find this course interesting.