
C # Master Class
So, you know C#. You've learned the syntax, learned how to write classes and interfaces, know your lists from your lambdas, and have some experience using both the C# language and the .Net framework. Perhaps you took our Beginner and advanced C# courses - or you already know what they teach. What next?
The C# Masterclass moves beyond the syntax and semantics. Its focus is on applying C#, along with selected parts of the .NET framework, to build elegant, extensible, multi-paradigm solutions to everyday problems. You'll learn how to apply classes and interfaces to achieve solid OO designs, how to work efficiently with lambda expressions, how to tame asynchrony with using the async/await keywords - and much more!
The course is up to date with the latest C# 10 and most exercises are done targeting the latest version of .NET 6. Even if you don't use .NET 5/6 or .NET Core today, this course is still relevant and most of the concepts taught in this course work on all platforms.
The course consists of plenty of hands on exercises where you get to apply the things you learn.
What you will learn
Introduction
C # History
.NET Standard
Roslyn compiler
Analyzers
Source Generators
.NET Core
.NET Core overview
Being Effective with Visual Studio 2019
Advanced Visual Studio features
Intelli Code
Live Share
Lambda and Delegate refresher
Delegates
Lambda expressions
Func and Action
Predicate
Value Tuples
Tuples vs Value Tuples
Deconstruction
Discard
Pattern matching
Switch expressions
Property patterns
Positional patterns
Tuple patterns
Relational and logical patterns
Working with null
Zero-conditional operator
Non-nullable reference types
Zero-forgiving operator
OO and dynamic
Dynamic objects
Late binding
Classes: outside-in
Object Oriented design
Command-Query Separation
Command Pattern
Dependency Inversion
The Dependency Inversion Principle
Injecting dependencies
DI containers
.NET Core generic host
Higher Order Programming
The lambda wrapper pattern
Closure semantics, and its uses
Function generators
Lambda vs local functions
Reflective Programming
Runtime structure of a program
Reflection
Creating types
Event driven architecture
Complexity and boundaries
Event aggregator pattern
Publish / subscribe
MediatR
C # 9 Records and immutability
Asynchronous programming
The Task abstraction
The Thread pool
Waiting for tasks
Continuations
Async and await keywords
Encoding and Unicode
Understanding unicode
UTF-8 and UTF-16 encoding
Homographs
Target audience
This course is aimed at those who have a working knowledge of C# and want to learn to apply the language in a more powerful way, taking advantage of all it has to offer.
Prerequisites
Participants should be comfortable with programming in C#. Some previous experience with generics, lambda expressions, and Linq queries is strongly suggested.
25 900 SEK ex VAT
NEXT OPPORTUNITY
Provided on request
- The course is given remote or in classroom
- Contact us for upcoming courses
- If you are a team there is an opportunity for content adaptation based on your needs
Duration: 3 days, or 6 half days
Level: Master
Language: English/Swedish
Course code: T220
REFERENCES
Very good, alot of new stuff and good repetition of old stuff. Even though some concepts are familiar in other languages it feels good to have seen them in C#.
PARTICIPANT
I really like the exercises because the main way for me to gain knowledge is through practice. The concepts presented are relevant and most of them used in the daily work.
PARTICIPANT
I think it was great. I really like the approach of showing what happens beneath the surface using sharplab. It gives you a deeper understanding when reasoning about the code I think.
PARTICIPANT
Great material and superb instructor. The course delved into advanced topics in an intuitive way that did not require an unreasonable amount of expertise in the specific language but more of an overall programming know-how.
COURSE PARTICIPANTS