This course provides in-depth coverage of advanced C# and dotnet mechanisms, allowing experienced C# developers lever the full power of the C# language.
On Completion, Delegates will be able to
Understand DI & reflection and its uses
Understand and use generic types effectively
Manage memory and non-memory resources effectively
Understand and use delegates and events
Build effective multithreading applications
Use the new Task Parallel Library effectively
Create and Use iterators effectively
Use C# 11 features effectively
Who Should Attend
The course is intended for experienced C# developers who want to upgrade their skills and deepen their understanding of the C# language and the .NET platform.
תכנית הלימודים
Full Syllabus
Dependency Injection in .NET
Understanding the basics of dependency injection and its benefits
Overview of DI in .NET Core and its built-in DI engine
Setting up and configuring DI in a .NET Core application
Configuring services and options in the DI container
Managing object lifetimes, including singleton, scoped, and transient services
Reflection
Understanding reflection and how it can be used to examine and modify code at runtime
Using attributes to annotate and extend code
Reflection-based techniques for building extensible applications and frameworks
Generics
The need for generics
Writing and using generic types
Generic methods, interfaces and delegates
Applying constraints
Generic collections
Other aspects of generic programming
Co-variance
Nullable types
Advanced Delegates and Events
Working with delegates
Creating your own delegate types
Events vs delegates
Anonymous delegates
Lambda Expressions and Anonymous Methods
Func and Action Delegates
EventArgs
Enumerables
Create and use Enumerable
For each loop
Iterators & yield return
Immutable Collections
Advanced Language Constructs
Partial types and partial methods
Extension methods
LINQ & LINQ Operators
Tasks
Introduction to Tasks
Creating tasks
Cancelling tasks
Tasks & Exceptions
Task schedulers
TaskCompletionSource
The Parallel class
Parallel LINQ
Understanding how to use await with Tasks and Task<T>
C# 9-11 features
Immutable data
Init-only Properties
Creating and using record types
Nullable reference types
Top-level Statements
Interpolated string
Global Usings
File-scoped namespaces
Reactive Extensions (Rx) and Event Streams (if time permits)
Introduction to Reactive Extensions (Rx)
Using Rx to work with event streams
Best practices for using Rx in .NET Core
Prerequisites
Basic C# knowledge is a must. At least 6 months of .NET development is required.
RxJS (Reactive Extensions for JavaScript) is an observational reactive programming library that makes it easy to write asynchronous or callback-based...