Design Patterns in C# and dotNET
Categories: Development

About Course
In this article series, I discussed all the Design Patterns in C# with real-time examples using different types of dot net applications which include ASP.NET MVC, Web API, and Console Applications. It is very easy to understand and implement design patterns with real-time applications. Writing the code with design patterns will make your applications more Reliable, Scalable, and Maintainable.
What Will You Learn?
- Recognize and apply design patterns
- Reason about applicability and usability of design patterns
- Refactor existing designs to use design patterns
Course Content
01 – Introduction
-
001 Introduction
00:00
01 – The SOLID Design Principles
-
001 Overview
00:00 -
002 Single Responsibility Principle
00:00 -
003 Open-Closed Principle
00:00 -
004 Liskov Substitution Principle
00:00 -
05 Interface Segregation Principle
00:00 -
006 Dependency Inversion Principle
00:00 -
007 Summary
00:00
02 – Builder
-
001 Gamma Categorization
00:00 -
002 Overview
00:00 -
003 Life Without Builder
00:00 -
004 Builder
00:00 -
005 Fluent Builder
00:00 -
006 Fluent Builder Inheritance with Recursive Generics
00:00 -
007 Stepwise Builder
00:00 -
008 Functional Builder
00:00 -
009 Faceted Builder
00:00 -
010 Summary
00:00
03 – Factories
-
001 Overview
00:00 -
002 Point Example
00:00 -
003 Factory Method
00:00 -
004 Asynchronous Factory Method
00:00 -
005 Factory
00:00 -
006 Object Tracking and Bulk Replacement
00:00 -
007 Inner Factory
00:00 -
008 Abstract Factory
00:00 -
009 Abstract Factory and OCP
00:00 -
010 Summary
00:00
04 – Prototype
-
001 Overview
00:00 -
002 ICloneable is Bad
00:00 -
003 Copy Constructors
00:00 -
004 Explicit Deep Copy Interface
00:00 -
005 Prototype Inheritance
00:00 -
006 Copy Through Serialization
00:00 -
007 Summary
00:00
05 – Singleton
-
001 Overview
00:00 -
002 Singleton Implementation
00:00 -
003 Testability Issues
00:00 -
004 Singleton in Dependency Injection
00:00 -
005 Monostate
00:00 -
06 Per-Thread Singleton
00:00 -
007 Ambient Context
00:00 -
008 Summary
00:00
06 – Adapter
-
001 Overview
00:00 -
002 Vector_Raster Demo
00:00 -
03 Adapter Caching
00:00 -
004 Generic Value Adapter
00:00 -
005 Adapter in Dependency Injection
00:00 -
006 Summary
00:00
07 – Bridge
-
001 Overview
00:00 -
002 Bridge
00:00 -
003 Summary
00:00
08 – Composite
-
001 Overview
00:00 -
002 Geometric Shapes
00:00 -
003 Neural Networks
00:00 -
004 Composite Specification
00:00 -
005 Summary
00:00
09 – Decorator
-
001 Overview
00:00 -
002 Custom String Builder
00:00 -
003 Adapter-Decorator
00:00 -
004 Multiple Inheritance with Interfaces
00:00 -
005 Multiple Inheritance with Default Interface Members
00:00 -
006 Dynamic Decorator Composition
00:00 -
007 Detecting Decorator Cycles
00:00 -
008 Static Decorator Composition
00:00 -
009 Decorator in Dependency Injection
00:00 -
010 Summary
00:00
10 – Façade
-
001 Overview
00:00 -
002 Facade
00:00 -
003 Summary
00:00
11 – Flyweight
-
001 Overview
00:00 -
002 Repeating User Names
00:00 -
003 Text Formatting
00:00 -
004 Summary
00:00
12 – Proxy
-
001 Overview
00:00 -
002 Protection Proxy
00:00 -
003 Property Proxy
00:00 -
004 Value Proxy
00:00 -
005 Composite Proxy_ SoA_AoS
00:00 -
006 Composite Proxy with Array-Backed Properties
00:00 -
007 Dynamic Proxy for Logging
00:00 -
008 Proxy vs. Decorator
00:00 -
009 ViewModel
00:00 -
010 Bit Fragging
00:00 -
011 Summary
00:00
13 – Chain of Responsibility
-
01 Overview
00:00 -
002 Command Query Separation
00:00 -
003 Method Chain
00:00 -
004 Broker Chain
00:00 -
005 Summary
00:00
14 – Command
-
001 Overview
00:00 -
002 Command
00:00 -
003 Undo Operations
00:00 -
004 Composite Command
00:00 -
005 Summary
00:00
15 – Interpreter
-
001 Overview
00:00 -
002 Handmade Interpreter_ Lexing
00:00 -
003 Handmade Interpreter_ Parsing
00:00 -
004 ANTLR
00:00 -
005 Summary
00:00
16 – Iterator
-
001 Overview
00:00 -
002 Iterator Object
00:00 -
003 Iterator Method
00:00 -
004 Iterators and Duck Typing
00:00 -
005 Array-Backed Properties
00:00 -
006 Summary
00:00
17 – Mediator
-
01 Overview
00:00 -
002 Chat Room
00:00 -
003 Event Broker
00:00 -
004 Introduction to MediatR
00:00 -
005 Summary
00:00
18 – Memento
-
001 Overview
00:00 -
002 Memento
00:00 -
003 Undo and Redo
00:00 -
004 Memento for Interop
00:00 -
005 Summary
00:00
19 – Null Object
-
001 Overview
00:00 -
002 Null Object
00:00 -
003 Null Object Singleton
00:00 -
004 Dynamic Null Object
00:00 -
005 Summary
00:00
20 – Observer
-
001 Overview
00:00 -
002 Observer via the ‘event’ Keyword
00:00 -
003 Weak Event Pattern
00:00 -
004 Observer via Special Interfaces
00:00 -
005 Observable Collections
00:00 -
006 Bidirectional Observer
00:00 -
007 Property Dependencies
00:00 -
008 Declarative Event Subscriptions with Interfaces
00:00 -
009 Summary
00:00
21 – State
-
001 Overview
00:00 -
002 Classic Implementation
00:00 -
003 Handmade State Machine
00:00 -
004 Switch-Based State Machine
00:00 -
005 Switch Expressions
00:00 -
006 State Machine with Stateless
00:00 -
007 Summary
00:00
22 – Strategy
-
01 Overview
00:00 -
002 Dynamic Strategy
00:00 -
003 Static Strategy
00:00 -
004 Equality and Comparison Strategies
00:00 -
005 Summary
00:00
23 – Template Method
-
001 Overview
00:00 -
002 Template Method
00:00 -
003 Functional Template Method
00:00 -
004 Summary
00:00
24 – Visitor
-
001 Overview
00:00 -
002 Intrusive Visitor
00:00 -
003 Reflective Visitor
00:00 -
004 Classic Visitor (Double Dispatch)
00:00 -
005 Reductions and Transforms
00:00 -
006 Dynamic Visitor via the DLR
00:00 -
007 Acyclic Visitor
00:00 -
008 Summary
00:00
25 – Course Summary
-
001 Creational Paterns Summary
00:00 -
002 Structural Patterns Summary
00:00 -
003 Behavioral Patterns Summary
00:00 -
004 End of Course
00:00
26 – Additional Lectures
-
001 An ASCII C# String
00:00 -
002 Continuation Passing Style
00:00 -
003 Local Inversion of Control
00:00 -
004 DI Container and Event Broker Integration
00:00 -
005 Beyond the Elvis Operator
00:00 -
006 CQRS and Event Sourcing
00:00
27 – Functional Patterns in F#
-
001 Overview
00:00 -
002 Builder
00:00 -
003 Decorator
00:00 -
004 Factory
00:00 -
005 Interpreter
00:00 -
006 Strategy
00:00 -
007 Template Method
00:00 -
008 Summary
00:00