Go to the Datasim Education BV homepage Datasim Education BV Datasim Education BV Datasim Education BV Datasim Education BV Datasim Education BV
Information request

Follow datasim on Twitter

Share this page

C# Design Patterns Training

Course Category: 

C# and Design Patterns  - (code CS-DP)

The goal of this course is to introduce the well-known system and design patterns (POSA, GOF) and then implement them using C#. We discuss the most important patterns that help you create flexible applications and we use the object-oriented (OOP) and generic programming (GP) to implement robust designs, quickly and efficiently.

The GOF patterns were published in 1995 and they used OOP techniques as the basis for constructing the patterns. These techniques are still valid but in some cases it is more advantageous to create these using GP techniques. Furthermore, C# has a number of language extensions and extra libraries that directly implement a number of design patterns, thus increasing developer productivity even more.

This unique course has been specially developed by Datasim for designers and developers who create practical applications. Based on years of real application software and training experience, this course discusses all the essential features in C# in combination with proven design patterns to allow developers to create robust and flexible applications.

What do you learn?

  • Learn the GOF (Gamma) patterns in C#
  • Critical POSA (Buschmann) patterns to structure your applications
  • Meta Design Patterns and Reflection
  • Integrating OOP and GP in pattern design
  • Implementing GOF patterns using generics (developed by Datasim)

What previous Delegates have said about the Course

  • "Very good course"


Course contents updated April 2012 

Course contents

Part I: Structural Patterns and Infrastructure

Structuring a C# Application

  • Whole Part Pattern
  • Model View Controller (MVC)
  • Presentation Abstraction Control (PAC)

Interfacing in C#

  • Interfaces and abstract classes
  • Provides and requires interfaces
  • Contracts and service-oriented programming
  • Contracts in C# (the where clausule)

Defining Structure

  • Inheritance
  • Aggregation and Composition
  • Delegation: stateful and stateless variants

Short Overview of UML 2.0 Diagrams

  • Class diagrams
  • Component diagrams
  • Assembly and connector components
  • Sequence diagrams and statecharts

Part II: GOF Patterns in C#


  • Background to design patterns
  • GOF pattern classification
  • 20-80% rule: essential and non-essential patterns
  • Advantages of using design patterns

Creational Design patterns

  • Applicability of creational patterns to C#
  • The Builder pattern
  • Factory Method and Abstract Factory patterns
  • Prototype pattern
  • Using .NET Reflection for factories: Activator

Structural Design Patterns

  • Composite pattern and nested objects
  • Proxy pattern
  • Decorator pattern
  • Class and object Adapter
  • Bridge pattern

Behavioural Patterns I

  • Command pattern
  • Strategy pattern
  • Using Delegates for creating algorithms
  • Using interfaces and inheritance for Template Method pattern
  • Visitor pattern and service extension
  • Iterator pattern and its implementation in .NET

Behavioural Patterns II

  • Observer (Publisher-Subscriber) pattern
  • Mediator pattern and change control
  • Using events and Delegates as an alternative to Observer

Other Behavioural Patterns

  • State pattern
  • Role pattern
  • Propagator pattern

Part III: Patterns using C# Generics

Policy-based Design in C#

  • Implementing contracts with interfaces
  • Combining behaviour and structure: interfaces and inheritance
  • Moving GOF patterns to their generic forms

Generic Patterns

  • Strategy pattern
  • Bridge pattern
  • Command pattern

Part IV: Patterns and C# Extensions

Regular Expressions

  • What is a regular expression?
  • Matching
  • Compiled regular expressions
  • Regex options

Lambda Expressions

  • Using lambda expressions instead of delegates
  • Expression trees
  • Generic lambda expressions
  • Anonymous methods


  • Serialisation engines
  • Explicit and implicit serialization
  • Binary and XML serialization
  • Integration with Builder and Visitor patterns

Multi-threaded patterns

  • Master-slave pattern
  • Producer-Consumer pattern 
  • Thread pooling


  • Mini 2D CAD application
  • Extended Producer-Consumer
  • Clock Publisher-Subscriber

The student should have a good working knowledge of C#. We assume that the student has attended the Datasim "C# Programming" course. This course is not for beginners. It is not enough to have syntax knowledge of C# in order to gain benefit from this course. If you have any queries, please contact Datasim.

Who should attend?

Developers and programmers who wish to apply the Gamma patterns to the creation of flexible, reusable and maintainable software systems in C#.

In short, this is the course that applies modern design patterns in combination with object-oriented and generic programming models to speed up development of real-life applications.

Course form
This is a hands-on course. The percentage theory/practice is 40/60. Simple examples are given as exercises while the full power of patterns in C# will be explained by extended real-life examples. The objective of this course is to acquaint the student with design patterns and how to program them using C#.

Duration, price, date, locations
Course duration 3 days
Price Euro 1455.-- ex. VAT
Euro 1760.55 inc. 21% VAT
Date and location Dates available on request

It is also possible to organize this course at your company premises (the in-company option). If you have any question, please contact our Datasim office.

Share this page

Contact and Profile
Registration form
Course Dates