Advanced C#

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 detta kursen för dig!

Denna kurs tar dig vidare inom C# och relaterade tekniker. Den fokuserar på modern arkitektur och praktisk utveckling, ren kod och verkliga situationer.

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

Du förutsätts ha god kännedom om programmering i C# och .NET. Till detta rekommenderar vi vår kurs Programming in C# - Intermediate.

Ämnesområden

Being Effective with Visual Studio

  • Navigation and editing tips and tricks
  • Using the debugger

Classes: outside-in

  • The nature of object orientation
  • Encapsulation and hiding
  • Dynamic objects vs. class-based OO
  • What comes first: classes, methods, or fields?
  • Responsibility, and the Single Responsibility Principle
  • Invariants
  • Using Visual Studio's stubbing features
  • Command Query Segregation
  • Tell, don't ask

Relating objects

  • Late binding: the power of not knowing
  • Composition and aggregation
  • The Open Closed Principle applied
  • Interfaces, and the Interface Segregation Principle
  • Inheritance, and the Liskov Substitution Principle
  • Some common design patterns and their application

Dependency Inversion

  • The Dependency Inversion Principle
  • Coping with time by following the DIP
  • Coping with persistence by following the DIP
  • A few words on DI containers

Generic Programming

  • Creating generic classes
  • Inheriting from generic classes
  • Using generic constraints
  • Generic interfaces
  • Generic methods
  • Using generics to implement a presentation pattern

Higher Order Programming

  • What is Higher Order Programming?
  • Lambdas expressions
  • Closure semantics, and its uses
  • Action and Func generic delegate types
  • Function generators

Reflection and attributes

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

Putting the pieces together

  • Implementing the event aggregator pattern using generic programming, higher order programming, and reflective programming

Text processing

  • Understanding unicode: codepoints, encodings, graphemes and more
  • Regular expressions: concept, syntax, practical examples
  • The Regex + Stack + Action Pattern
  • Walkthrough: a simple wiki markup parser, done right

Advanced Linq

  • Approaching problems from a Linq perspective
  • Method syntax vs. query syntax
  • Lazy evaluation: benefits and dangers
  • Walkthrough: train timetable lookup engine
  • Set operations
  • A quick look at expression trees

Asynchrony

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

Parallelism and Concurrency

  • Concurrency vs. parallelism
  • Locks: when you need them, and how to apply them
  • Data parallelism with parallel iteration and PLINQ
  • Task parallelism with Tasks
  • A quick look at the concurrent collections

 

Boka kursen

Boka din plats redan idag.

Om kursen

Pris: 25 970,00 kr

exklusive moms

Längd 3 dagar
Kurskod ET320

KompetenskortKompetenskort gäller på denna kurs

Boka kursen

Välj ort och kursstart

6 februari

24 april

22 maj

Kunduppgifter

Kursanmälan är bindande. För mer information och avbokningsregler se våra allmänna villkor.
Kontakta Cornerstone

Kontakta oss

Har du några frågor är du välkommen att kontakta vår kundservice.

Telefon: 08-562 557 50   
E-post: info@cornerstone.se