Description
This training presents a methodology to improve the efficiency of your .NET and .Net Core applications. You will learn how to use the most important performance analysis and diagnostic tools, and you will master the different code optimization techniques in C# language. This will allow you to optimize your applications so that they work faster and more efficiently.
Who is this training for ?
For whom ?
Developers, engineers, architects, project managers.
Prerequisites
Good knowledge of the C# language. Experience required.
Training objectives
Training program
- Introduction
- - Evolution of the .Net platform and its ecosystem.
- - Optimize: what, how, when? Objectives.
- The GC garbage collector, allocation optimization and diagnosis
- - Memory management by garbage collection and GC API.
- - Diagnostic tools from Visual Studio, JetBrains and BenchmarkDotNet.
- - The Pattern Disposes and the implementation of IDisposable.
- - Recommendations to avoid potential memory leaks in a .Net application.
- - Guards to design time via Code Analysis Rules.
- - Tools from the .Net ecosystem to trace boxing, closure and null reference errors.
- C# methods and language constructs
- - C# methods and the evolution of coding.
- - Extension methods and LINQ architecture.
- - Asynchronous methods and the use of async/await keywords.
- - Performance metrics for Value type allocations compared to Reference types.
- - New ValueTuple value type in C# 7.0.
- - Parameter passing and returning by reference in C# 7.2.
- - Advantages of functional programming in C# and comparison to the functional language F#.
- - Pattern Matching in C#.
- Paintings and collections
- - Performance of data operations.
- - .Net collections and characteristics.
- - Implementation of the IEquatable interface.
- - IntPtr pointer and the C# 7.2 stackalloc keyword to allocate on the stack.
- The .Net 4.7 TPL library: asynchronism and parallelism
- - Evolution of the management of asynchronous calls via the async/await keywords.
- - The new classes of System.Threading.Tasks.
- - Parallelize the iterations for and foreach. Design pattern in terms of parallelism.
- - Using the PLinq infrastructure.
- - Performance diagnosis via JetBrains BenchmarkDotNet and DotTrace NuGet.
- Conclusion
- - Impact of C# 8 and C# 9 features on .Net code and applications.
- - A summary and some advice.
- - Book recommendations and internet references .