EN / Courses / C# Master Class / Course Detail

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 make data time-travel 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!

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.

What you will learn

Introduction

  • Roslyn compiler
  • Introduction to .NET Core

Being Effective with Visual Studio 2015

  • Navigation and editing tips and tricks
  • Using the debugger

Lambda and Delegate refresher

  • Delegates
  • Lambda expressions
  • Func and Action

C# 6 and C#7

  • Learn all the new features in C#6
  • What's new in C#7

OO and dynamic

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

Classes: outside-in

  • What comes first: classes, methods, or fields?
  • Invariants
  • Command-Query Separation

Design patterns

  • Decorator pattern
  • Chain of Responsibility
  • The strategy pattern

Dependency Inversion

  • The Dependency Inversion Principle
  • Coping with time by following the DIP
  • Coping with persistence by following the DIP
  • DI containers

Generic Programming

  • Creating generic classes
  • Inheriting from generic classes
  • Using generic constraints
  • Generic interfaces

Higher Order Programming

  • What is Higher Order Programming?
  • Closure semantics, and its uses
  • Function generators

Reflection and attributes

  • Application domains, assemblies, types, and members
  • Reflection types
  • Walkthrough: dynamic object builder
  • Implementing custom attributes

Event driven architecture

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

Encoding and Unicode

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

Regular expressions

  • Concept, syntax, practical examples
  • Multiline
  • Groups and captures

Advanced Linq

  • Approaching problems from a Linq perspective
  • Method syntax vs. query syntax
  • Lazy evaluation: benefits and dangers
  • SelectMany, Join and Group By operations
  • Set operations

Asynchrony

  • What is asynchronous programming?
  • CPU-bound vs. IO-bound operations
  • The Task abstraction, and task-based asynchrony
  • Continuation Passing Style
  • async and await keywords
BOOK

Course info

  • Course code: T320
  • Course duration: 3 days
  • Price: 25970 SEK

Course schedule

Malmö

Oslo

Stockholm

Teachers

Eric Lavesson
Eric Lavesson
Martin Andersson
Martin Andersson
Tore Nestenius
Tore Nestenius

Share

  • Please share on LinkedIn
  • Please share on Facebook
  • Please share on Twitter

Contact us for details

040-6170720

info@edument.se

All prices excluding VAT

Copyright © Edument AB. All rights reserved.