.NET Design Patterns and Principles Training

Course Description

 
This 3-day course that teaches students best practices for developing enterprise applications and a selection of popular design principles and patterns that can be applied to achieve a maintainable, flexible, and testable architecture.
Course Length: 3 Days
Course Tuition: $1750 (US)

Prerequisites

Prior experience developing applications in .NET is required.

Course Outline

 

Dealing with Complexity

  •  Functional Decomposition
  •  Requirements and Inevitable Change
  •  Coupling and Cohesion
  •  Unwanted Side Effects
  •  Perspecives
    •  Conceptual
    •  Specification
    •  Implementation
  •  Responsibilities

The Object-Oriented Paradigm

  •  Objects and Responsibilities
  •  Single Responsibility Principle (SRP)
  •  Interfaces and Abstract Classes
  •  Encapsulation and Polymorphism
  •  Liskov Substitution Principle (LSP)
    •  Object Construction and Destruction
    •  Constructors and Field Initialization in .NET
    •  Destructors and the Finalize Method
    •  .NET Dispose Pattern
  •  Classes vs. Structs in .NET

Overview of UML

  •  Introduction
  •  Class Diagrams
  •  Sequence Diagrams

Introduction to Design Patterns

  •  Origin of Design Patterns
  •  “Gang of Four” Patterns
  •  Key Features of Patterns
  •  Why Study Design Patterns?
  •  Design Strategies

Structural Patterns (Part I)

  •  Facade Pattern
  •  Adapter Pattern
  •  Facade vs. Adapter

Testability

  •  Writing Unit Tests
  •  Test-Driven Development (TDD)
  •  Dependencies
  •  Extracting Interfaces
  •  Mock Object Pattern

Behavioral Patterns (Part I)

  •  Dealing with Change
  •  Encapsulating Variations
  •  Strategy Pattern
  •  Open-Closed Principle (OCP)
  •  Template Method Pattern

Structural Patterns (Part II)

  •  Inheritance vs. Composition
  •  Bridge Pattern
  •  Decorator Pattern
  •  Proxy Pattern

Behavioral Patterns (Part II)

  •  Observer Pattern
  •  .NET Events
  •  Command Pattern

Creational Patterns

  •  Motivation
  •  Dependency Injection
  •  Singleton Pattern
    •  Thread Safety
    •  .NET Implementation
  •  Object Pool Pattern
  •  Factory Method Pattern
  •  Abstract Factory Pattern

Model-View-Controller (MVC)

  •  Model-View-Presenter (MVP)
  •  Model-View-ViewModel (MVVM)
  •  WPF and ASP.NET MVC

Architectural Patterns and Styles

  •  Component-Based Architecture
  •  .NET Assemblies and Versioning
  •  N-Tier Architecure
  •  Service-Oriented Architecture (SOA)

Designing with Patterns

  •  Summary of Design Principles
  •  Commonality and Variability
  •  Dependency Inversion Principle (DIP)
  •  Hybrid and Composite Patterns
  •  Design Patterns and Agile Practices

Course Directory [training on all levels]