- This course targets intermediate to advanced audiences. General C# Programming
experience is necessary.
Advaced C#
● Delegates
● Events
● Lambda Expressions
● Anonymous methods
● try Statements and Exceptions
● Enumeration and Iterators
● Nullable Value Types
● Nullable Reference Types
● Extension methods
● Anonymous Types
● Tuples
● Records
● Patterns
● Attributes
● Caller Info Attributes
● Dynamic Binding
● Operator Overloading
● Unsafe Code and Pointers
● Preprocessor Directives
● XML Documentation
Collections
● Enumeration
● ICollection and IList interfaces
● Array Class
● Lists, Queues, Stacks and Sets
● Dictionaries
● Immutable collections
LINQ
● Fluent Syntax & Query Expressions
● Deferred execution
● Composition & Projection Strategies
● Interpreted Queries
● EF Core
● LINQ Operators - Filtering, Projecting, Joining, Ordering, Grouping, Set Operators, Conversion Methods, Element operators, Aggregation methods, Quantifiers, Generation methods
Disposal & Garbage Collection
Concurrency and Asynchrony
● Threading
● Tasks
● Asynchronous functions
● Asynchronous patterns
Streams & I/O
● Using Streams
● Stream Adapters
● File & Directory Operations
Dynamic Programming
● Implementing dynamic objects
● Dynamic language runtime
Advanced Threading
● Exclusive & Non Exclusive Locking
● Signaling
● Barrier class
● Thread-local storage
Parallel Programming
● PFX
● PLINQ
● Parallel Class
● Task Parallelism
● Concurrent Collections
Span<T> and Memory<T>
Native and COM Interoperability
● Type and Parameter Marshalling
● Calling COM Component from C#
● Exposing C# objects to COM
Additional Topic
1. Multilayer architecture
2. Unit Testing (NUnit) and Mocking
3. WPF
4. Design Patterns