T1542

Ladda ner som PDF

Dependency Injection using MVVM & WPF

Learn how to write loosely coupled code that is easy to test and easy to maintain with high cohesion and “Separation of Concern”. This is the future for modern software development and it might question some of the “old school” ways of doing OOP.

Several high-profile companies such as H&M, DICE and King are using Dependency Injection in their R&D departments and some have it as requirement for employment.

Audience

This course is equally demanding regardless if you are just a few years into your C# career or if you are a seasoned developer. The focus will be on design patterns and how to combine WPF with Dependency Injection, SOLID principles and Inversion of Control so VB.NET developers are welcome too.

Prior knowledge

It’s enough if you have written a few basic C# application and have theoretical knowledge of WPF, XAML and data bindings. This is workshop based, hands-on course so we will be hacking code.

Courseware

Training material is provided in English

Piotr KunduBIOGRAPHY

Piotr Kundu bring to you hands-on knowledge and best practices, straight from the trenches working as a Software Architect on ongoing project for a high profile Swedish industrial giant.

He’s been working for more than 10 years with C++ and C#, writing articles in magazines. He is also a Certified Architect from IASA as well as a Professional Scrum Master and Professional Product Owner from Scrum.org.

DAY 1

INTRODUCTION

  • Principles vs Patterns  
  • Patterns and Anti-Patterns  
  • Testable Code  

SOLID PRINCIPLES  
1. Single Responsibility Principle (SRP)
2. Open/Closed Principle (OCP) 
3. Liskov Substitution Principle (LSP)
4. Interface Segregation Principle (ISP)
5. Dependency Inversion Principle (DIP)

DEPENDENCY INJECTION

  • Constructor Injection   
  • Property Injection   
  • Method Injection   
  • Composition Root in Model-View-ViewModel (MVVM)
  • DI-containers vs Pure Di
  • Decorator Pattern  

ANTI-PATTERNS

  • Golden Hammer   
  • Mushroom Management   
  • Warm Bodies   
  • Bastard Injection   
  • Service Locator   
  • Singleton Design Pattern and Static
  • Temporal Coupling 

DAY 2

MODEL-VIEW-VIEWMODEL (MVVM)

  • How to get started or MVVM for dummies.
  • What is a View, Viewmodel and Model
  • Stateful vs Stateless Viewmodel 
  • WPF and XAML... Läs mer

Piotr KunduBIOGRAPHY

Piotr Kundu bring to you hands-on knowledge and best practices, straight from the trenches working as a Software Architect on ongoing project for a high profile Swedish industrial giant.

He’s been working for more than 10 years with C++ and C#, writing articles in magazines. He is also a Certified Architect from IASA as well as a Professional Scrum Master and Professional Product Owner from Scrum.org.

DAY 1

INTRODUCTION

  • Principles vs Patterns  
  • Patterns and Anti-Patterns  
  • Testable Code  

SOLID PRINCIPLES  
1. Single Responsibility Principle (SRP)
2. Open/Closed Principle (OCP) 
3. Liskov Substitution Principle (LSP)
4. Interface Segregation Principle (ISP)
5. Dependency Inversion Principle (DIP)

DEPENDENCY INJECTION

  • Constructor Injection   
  • Property Injection   
  • Method Injection   
  • Composition Root in Model-View-ViewModel (MVVM)
  • DI-containers vs Pure Di
  • Decorator Pattern  

ANTI-PATTERNS

  • Golden Hammer   
  • Mushroom Management   
  • Warm Bodies   
  • Bastard Injection   
  • Service Locator   
  • Singleton Design Pattern and Static
  • Temporal Coupling 

DAY 2

MODEL-VIEW-VIEWMODEL (MVVM)

  • How to get started or MVVM for dummies.
  • What is a View, Viewmodel and Model
  • Stateful vs Stateless Viewmodel 
  • WPF and XAML  
  • INotifyPropertyChanged    
  • ICommand    
  • UI Layout   
  • MVVM and Dependency Injection

LIFETIME MANAGEMENT

  • When are objects created?
  • How to build your dependency graph?
  • How to write your Compositon Root in App.xaml?   
  • Singleton Lifetime (Not Pattern) 
  • Transient    
  • Abstract Factory Pattern 

CONCURRENCY

  • Don’t block your UI-thread!
  • Backgroundworker vs Tap (Async/Await) 
  • IProgress
    "Gå denna kurs - intressant ämne och bra lärare!" 
    / en nöjd deltagare 26/4 -2016
    Citat från tidigare deltagare 
Kurs-ID: T1542
Längd: 2 dagar
Pris exkl moms: 20 450 kr
Kan betalas med:
TRAINING CARD

Lämna dina kontaktuppgifter om du önskar en företagsintern utbildning.

Tipsa