Design Patterns in C# and .NET

Discover the modern implementation of design patterns with C# and .NET

  • Dmitri Nesteruk
  • 4.41
  • (9924 reviews)
  • 20.5 hrs
  • 173 lectures
  • Udemy
Design Patterns in C# and .NET

What you will learn?

  • Recognize and apply design patterns
  • Refactor existing designs to use design patterns
  • Reason about applicability and usability of design patterns

Your trainer

Dmitri Nesteruk

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.

173 lessons

Easy to follow lectures and videos covering subject details.

20.5 hours

This course includes hours of video material. Watch on-demand, anytime, anywhere.

Certificate of Completion

You will earn a Certificate of Completion at the end of this course.

Course curriculum

  • Introduction07:12
  • Overview01:16
  • Single Responsibility Principle07:29
  • Open-Closed Principle17:24
  • Liskov Substitution Principle06:37
  • Interface Segregation Principle06:33
  • Dependency Inversion Principle11:11
  • Summary05:25
  • Gamma Categorization03:36
  • Overview01:43
  • Life Without Builder03:34
  • Builder09:06
  • Fluent Builder01:16
  • Fluent Builder Inheritance with Recursive Generics12:37
  • Stepwise Builder09:00
  • Functional Builder10:19
  • Faceted Builder11:11
  • Builder Coding Exercise1 question
  • Summary00:57
  • Overview02:22
  • Point Example04:38
  • Factory Method05:03
  • Asynchronous Factory Method05:01
  • Factory02:59
  • Object Tracking and Bulk Replacement12:01
  • Inner Factory05:41
  • Abstract Factory11:21
  • Abstract Factory and OCP09:52
  • Factory Coding Exercise1 question
  • Summary01:05
  • Overview01:59
  • ICloneable is Bad07:37
  • Copy Constructors03:55
  • Explicit Deep Copy Interface02:34
  • Prototype Inheritance20:24
  • Copy Through Serialization09:05
  • Prototype Coding Exercise1 question
  • Summary01:08
  • Overview02:43
  • Singleton Implementation08:40
  • Testability Issues07:22
  • Singleton in Dependency Injection08:58
  • Monostate03:46
  • Per-Thread Singleton04:25
  • Ambient Context12:26
  • Singleton Coding Exercise1 question
  • Summary02:15
  • Overview02:36
  • Vector/Raster Demo08:35
  • Adapter Caching06:04
  • Generic Value Adapter25:18
  • Adapter in Dependency Injection09:07
  • Adapter Coding Exercise1 question
  • Summary01:10
  • Overview02:50
  • Bridge09:49
  • Bridge Coding Exercise1 question
  • Summary01:33
  • Overview01:53
  • Geometric Shapes07:33
  • Neural Networks08:00
  • Composite Specification05:58
  • Composite Coding Exercise1 question
  • Summary01:11
  • Overview02:34
  • Custom String Builder06:19
  • Adapter-Decorator06:33
  • Multiple Inheritance with Interfaces08:40
  • Multiple Inheritance with Default Interface Members07:44
  • Dynamic Decorator Composition07:39
  • Detecting Decorator Cycles22:02
  • Static Decorator Composition09:30
  • Decorator in Dependency Injection06:10
  • Decorator Coding Exercise1 question
  • Summary02:02
  • Overview03:08
  • Façade07:59
  • Facade Coding Exercise1 question
  • Summary01:25
  • Overview05:24
  • Repeating User Names12:29
  • Text Formatting08:53
  • Flyweight Coding Exercise1 question
  • Summary00:58
  • Overview03:12
  • Protection Proxy03:11
  • Property Proxy09:24
  • Value Proxy12:04
  • Composite Proxy: SoA/AoS11:30
  • Composite Proxy with Array-Backed Properties06:42
  • Dynamic Proxy for Logging11:50
  • Proxy vs. Decorator01:27
  • ViewModel08:42
  • Proxy Coding Exercise1 question
  • Bit Fragging25:04
  • Summary00:55
  • Overview03:33
  • Command Query Separation01:28
  • Method Chain12:15
  • Broker Chain13:50
  • Chain of Responsibility Coding Exercise1 question
  • Summary01:18
  • Overview03:06
  • Command07:47
  • Undo Operations06:05
  • Composite Command12:11
  • Command Coding Exercise1 question
  • Summary01:09
  • Overview04:00
  • Handmade Interpreter: Lexing07:52
  • Handmade Interpreter: Parsing12:05
  • ANTLR02:44
  • Interpreter Coding Exercise1 question
  • Summary01:03
  • Overview01:42
  • Iterator Object11:49
  • Iterator Method06:57
  • Iterators and Duck Typing04:06
  • Array-Backed Properties05:51
  • Iterator Coding Exercise1 question
  • Summary01:28
  • Overview01:13
  • Chat Room10:42
  • Event Broker15:30
  • Introduction to MediatR13:20
  • Mediator Coding Exercise1 question
  • Summary01:16
  • Overview01:41
  • Memento06:04
  • Undo and Redo07:15
  • Memento for Interop06:38
  • Memento Coding Exercise1 question
  • Summary01:17
  • Overview01:57
  • Null Object08:53
  • Null Object Singleton05:08
  • Dynamic Null Object06:11
  • Null Object Coding Exercise1 question
  • Summary00:41
  • Overview02:10
  • Observer via the 'event' Keyword07:09
  • Weak Event Pattern08:25
  • Observer via Special Interfaces18:28
  • Observable Collections09:45
  • Bidirectional Observer14:48
  • Property Dependencies13:30
  • Declarative Event Subscriptions with Interfaces27:08
  • Observer Coding Exercise1 question
  • Summary00:56
  • Overview03:08
  • Classic Implementation12:32
  • Handmade State Machine06:44
  • Switch-Based State Machine06:38
  • Switch Expressions08:49
  • State Machine with Stateless05:37
  • State Coding Exercise1 question
  • Summary01:00
  • Overview01:50
  • Dynamic Strategy08:25
  • Static Strategy04:07
  • Equality and Comparison Strategies07:41
  • Strategy Coding Exercise1 question
  • Summary00:26
  • Overview01:29
  • Template Method07:22
  • Functional Template Method03:38
  • Template Method Coding Exercise1 question
  • Summary00:45
  • Overview04:46
  • Intrusive Visitor04:41
  • Reflective Visitor09:10
  • Classic Visitor (Double Dispatch)10:21
  • Reductions and Transforms14:24
  • Dynamic Visitor via the DLR07:11
  • Acyclic Visitor12:01
  • Visitor Coding Exercise1 question
  • Summary01:09
  • Creational Paterns Summary04:41
  • Structural Patterns Summary06:13
  • Behavioral Patterns Summary08:48
  • End of Course00:54
  • Duck Typing Mixins09:53
  • An ASCII C# String13:58
  • Continuation Passing Style11:06
  • Local Inversion of Control17:42
  • DI Container and Event Broker Integration10:11
  • Beyond the Elvis Operator14:46
  • CQRS and Event Sourcing26:42
  • Overview05:10
  • Builder04:57
  • Decorator04:39
  • Factory08:15
  • Interpreter09:58
  • Strategy05:38
  • Template Method10:06
  • Summary02:55
Online Courses

Learning C# doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.

Learn more
Books

Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of C# related books and take yourskills to the next level.

Learn more
YouTube videos

The number of high-quality and free C# video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.

Learn more