Course Code: cbespoke
Duration: 35 hours
Prerequisites:
  • This course targets intermediate to advanced audiences. General C# Programming
    experience is necessary.
Course Outline:

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