Consulting Training Blog Careers About Us Contact Us
All Classes Will Be Held Virtually – Live Online Intertech's Training Division has been successfully instructing professionals through virtual live online training since the advent of the smartboard. It is a proven form and offers the convenience of live questions, group interaction, and labs with an instructor looking over your shoulder. Because of this, we will continue all classes live but virtually, including Agile and Scrum instruction, so businesses and individual’s seeking professional development can keep moving forward during these unexpected times.

.NET Design Patterns and Principles Training

Upcoming Classes

Click the Get Notified button for priority notification when a class is next scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us


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.

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More

Learning Objectives

Upon completion of this course all attendees will:

  • Understand the origin and purpose of design patterns
  • Recognize when certain patterns and principles can provide a benefit in your application
  • Learn about many popular patterns and how to apply them
  • Understand the differences among the Model-View-X patterns (MVC, MVP, and MVVM)
  • Understand how to apply the SOLID design principles in your day-to-day development practice.


  • 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


  • 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)

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

Free Resources from Intertech

C# Tutorial: Understanding C# Events

Complete Guide to Becoming a Full Stack Developer

.NET Technology Guide for Business Applications