C# Expert Sessions

Formål med dette kursus er at sætte kursisten i stand til at fremstille mere effektiv, ren og simpelthen bedre kode med C#.

Beskrivelse

Arbejder du med C# og Visual Studio og kunne du godt tænke dig at lære nogle af de mere avancerede features?

Kunne du tænke dig at lære hvor rent og effektivt man kan implementere moderne design patterns?

Vil du lære flere Best Practices og hvordan man laver fantastiske API'er så er C# Expert Sessions noget for dig.

Dette kursus tager sit afsæt der hvor de ordinære Microsoft C# kurser slutter. Det dækker langt mere avancerede emner med fokus på moderne arkitektur og udviklings-paradigmer, ren kode og med et stærkt fokus på eksempler fra virkeligheden. Efter dette kursus vil du være i stand til at fremstille mere effektiv, ren og simpelthen bedre kode.

Forudsætninger

For at deltage på dette kursus skal du have deltaget på kurset: Programming in C# (MS-20483) eller have tilsvarende færdigheder.

Indhold

Dag 1

  • Visual Studio NinjaTricks
    • Sådan får du mest ud af Visual Studio - Genveje og ninjatricks
    • Fejlfinding i Visual Studio - et par nye tricks.
  • Et Objektorienteret brush-up
    • Nye måder at arbejde Objektoreienteret
    • Inheritance, composition og delegation
    • Classes vs. DT
  • Interfaces og OO
    • Interface rollen
    • Almindelige Design Patterns
    • SOLID og principperne herom
  • Inject me! - Dependency Injection
    • Control Principle taget på vrangen
    • Hands-On Dependency Injection
    • Hvorfor du bør overveje at benytte DI containeren
    • Introduktion til Unity Dependency Injection

Dag 2

  • Programmering uden grænser
    • Generic Types
    • Brugen af constraints i generisk programmering
  • Event Based arkitektur
    • Derfor decoupler vi ved brugen af events
  • High Level udvikling
    • Hvad er Higher Order udvikling?
    • Action og Func vs. Predicate delegate typer
    • I dybden med Lambda expressions og mulighederne/begrænsningerne
    • Design Patterns: Higher order udvikling
  • The Reflex!
    • Grundlæggende om reflection
    • Vi implementerer vores egne attributter.

Dag 3

  • Udvidet Linq
    • Sammenligning imod Query syntax
    • Joining, joins og alt det der ....
    • Lidt om Expression tree
    • Grouping
    • 1,2,3 ready SET go!
    • Asynkrone sager
  • Asynchrony, Concurrency, Parallelism
    • Overordnet om forskellige typer af operations
    • Udviddet modul om Passing Style og ContinueWith
    • Async og Await
    • Task abstraction
  • Parallelisering
    • Derfor skriver vi parallel kode
    • Task vs data parallelisering
    • Hardware og hvordan dette kan have indflydelse på parallel performance
    • Threads, thread-pools og locks
    • Grundlæggende om Interlocked operations og lock freedom
    • Vi taler mere om Tasks
    • Et overordnet kig på Concurrent collections
    • Et smugkig på PLINQ
    • Hvad er .Net og hvor er det på vej hen?
    • Assembly strukturen og hvordan man vrider den
    • CIL/CLR
  • Den fundamentale runtime
    • Hvad er .Net og hvor er det på vej hen?
    • Assembly strukturen og hvordan man vrider den
    • CIL/CLR