Öppna kurser

C# Master Class

Vill du bemästra C# och Visual Studio? Vill du se hur enkelt och effektivt det är att implementera moderna designmönster? Vill du lära dig hur experterna programmerar, och hur de skapar bra APIer? Då är det här kursen för dig!

Under kursen tar vi vid där de klassiska Microsoft-kurserna slutar, och omfattar mer avancerade ämnen med fokus på modern arkitektur och praktisk utveckling. Fokus ligger på ren kod och verkliga situationer. Med de kunskaper du får med dig kommer du kunna producera kvalitativt bättre program på ett effektivt sätt. Kursen består av många praktiska övningar där du får applicera det du lär dig i kursen.


Utbildningen är uppdaterad med senaste C# version 9 och de flesta övningar gör vi med senaste versionen av .NET 5. Även om du inte använder .NET 5 idag, så kommer du att få stor behållning av kursen då de flesta moment är applicerbara både på .NET 5, .NET Core och .NET Framework.


Målgrupp
Utvecklare i C# med .NET-erfarenhet, som vill få djupare förståelse i språk och verktyg samt uppdateras på senaste utvecklingsmetoder.

Förkunskaper
God kännedom om programmering i C# och .NET. Du bör ha jobbat med .NET i minst 1-2 år. Tidigare kunskaper i Linq och lambdauttryck är starkt rekommenderat. Annars rekommenderar vi vår kurs i Avancerad C# som ger dig en bra grund. 

Kursinnehåll
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

  • Null-conditional operator
  • Non-nullable reference types
  • Null-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

Kursen levereras i samarbete med Edument
Edument