Consulting Training Blog Careers About Us Contact Us

.NET Design Patterns and Principles Training

Upcoming Classes

Sorry, nothing scheduled right now. Click the Get Notified button below to be alerted when a class is 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

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.

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.

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

Free Resources from Intertech

Complete Guide to Becoming a Full Stack Developer

Free Whitepaper: Design and Code Review Checklist

eBook: Agile Open-Source Projects with Visual Studio Online

X