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ö
17 OctBook now
Stockholm
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