Find the perfect course for you

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 Intermediate 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 re-cast traditionally imperative problems as concise Linq queries, how to tame asynchrony with using the async/await keywords - and much more!

  • .NET
  • C#

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.

Pre-requisites

Participants should be comfortable with programming in C#. Some previous experience with generics, lambda expressions, and Linq queries is strongly suggested.

Introduction

  • Roslyn compiler
  • .NET Core
  • .NET Standard

Being Effective with Visual Studio 2017

  • Navigation and editing tips and tricks
  • Using the debugger
  • Code analyzers

Lambda and Delegate refresher

  • Delegates
  • Lambda expressions
  • Func and Action

C# language features

  • Explore the C#6 and C#7 features

OO and dynamic

  • The nature of object orientation
  • Encapsulation and hiding
  • Dynamic objects vs. class-based OO

Classes: outside-in

  • Object Oriented design
  • Invariants
  • Command-Query Separation

Design patterns

  • Decorator pattern
  • Chain of Responsibility
  • The strategy pattern

Dependency Inversion

  • The Dependency Inversion Principle
  • Injecting dependencies
  • DI containers

Higher Order Programming

  • The lambda wrapper pattern
  • Closure semantics, and its uses
  • Function generators

Reflective Programming

  • Runtime structure of a program
  • Reflection
  • Creating types

Event driven architecture

  • Complexity and boundaries
  • Event aggregator pattern
  • Publish/subscribe

Encoding and Unicode

  • Understanding unicode
  • UTF-8 and UTF-16 encoding
  • Homographs

Asynchrony

  • What is asynchronous programming?
  • The Thread pool
  • The Task abstraction
  • Waiting for tasks
  • Continuation Passing Style
  • Async and await keywords
  • Async lambdas

Advanced Linq 

  • Method syntax vs. query syntax
  • Expression trees
  • Lazy evaluation: benefits and dangers
  • SelectMany, Join and Group By operations
  • Set operations

Course info

Course code: T320
Duration: 3 days
Price: 25 900 SEK
Language: English

Course schedule

Malmö
29 AugBook now
29 AugBook now
17 OctBook now
Stockholm
25 JunBook now
25 JunBook now
16 OctBook now
19 NovBook now
26 NovBook now

Teachers

Share

Contact us for details

+46 40 61 70 720
info@edument.se


All prices excluding VAT