Save for later

Design Patterns in C# and .NET

Course Overview

This course provides a comprehensive overview of Design Patterns in C# and .NET from a practical perspective. This course in particular covers patterns with the use of:

  • The latest versions of C# and the .NET framework
  • Use of modern programming approaches: dependency injection, reactive programming and more
  • Use of modern developer tools such as ReSharper
  • Discussions of pattern variations and alternative approaches

This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.

What are Design Patterns?

Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).

The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: C#, Java, PHP and even programming languages that aren't strictly object-oriented, such as JavaScript.

The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.

What Patterns Does This Course Cover?

This course covers all the GoF design patterns. In fact, here's the full list of what is covered:

  • SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
  • Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
  • Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template Method and Visitor

Who Is the Course For?

This course is for .NET/C# developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way. For example, the introduction of the DLR allows us to use an ImpromptuObject, so that our DynamicObject exposes any interface we desire. This allows for dynamic programming, and many design patterns are presented in terms of their static and DLR-based variations.

Presentation Style

This course is presented as a (very large) series of live demonstrations being done in Microsoft Visual Studio. Most demos are single-file, so you can download the file attached to the lesson and run it in Visual Studio, Visual Studio Code, Rider or another IDE of your choice.

This course does not use UML class diagrams; all of demos are live coding. I use Visual Studio, various NuGet packages, R# unit test runner and even dotMemoryUnit.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.2 based on 566 ratings
Length 20 total hours
Starts On Demand (Start anytime)
Cost $12
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Get a Reminder

Send to:

Similar Courses

What people are saying

design patterns

Excellent course on Design Patterns with nice practical examples for each one and alternative implementations for most of them as well.

I'm currently working on a company that has a huge .Net solution that implements some of the design patterns reviewed here, and now I can understand the purpose of why to use those patterns.

It seems to assume you already are familiar with the design patterns and it only focuses only on their implementation IN C# without explaining the general design concept patterns thoroughly.

I was looking for a course which gave more detailed and thorough explanations of design patterns and less info specific to C#.

It really reflects the description for the course "but also the different variations and tricks that can be applied to implement design patterns in a modern way."

Examples are little tricky sometimes Thanks for the awesome material on internet for Design-Patterns however I would like to suggest you that, can you please club these design patterns as per their Categories called as Creational Pattern, Structural Pattern and Behavioral Pattern so that we can easily distinguish them.

This course is an excellent walk through of design patterns with C#.

The instructor does a great job of explaining the design patterns and the code examples have been great so far.

the programming was very fast i like it good speed of lecture, practical examples not this time I have been looking for an in-depth course on design patterns and principles that was not outdated and so far this has completely delivered.

I wanted to learn design patterns and couldn't have asked for a better Tutor.

Dmitri creates a great learning experience for everybody who wants to really understand what design patterns are for and when and why to use them.

Great course, not only teaching design patterns but also good practices and handy tools for productivity Very fast A detailed and comprehensive course for quickly brushing up design patterns using latest C# and other libraries.

Highly recommended for programmers looking to improve the way they code, and learn design patterns.

Course covered a wide array of object-oriented design patterns in C#.

Read more

so far

Like it so far.

Videos so far have a great pace!

Other than that a great course so far Awesome.

Talks fast, but keeping OK so far... Easy to follow follow Very good He is a good teacher!

So far so good!

all good so far.

This is by far the very best Udemy programming cource I have watched so far.

Not only do I understand the patterns covered so far, my C# is better for taking this.

So far so good Very useful course, which also teaches some additional C# skills Hasta el momento todos los ejemplos están funcionado, las explicaciones son claras y precisas.

Helped me a bunch so far.

So far Simply Outstanding, Extraordinary; cant find till date something which stands above this.

Thanks <3 I'm only a few modules in, but so far it's been the best Design Patterns course I've watched.

So far the examples are practical and applicable.

So far, so good.

Read more

easy to understand

Easy to understand and very useful.

Was easy to understand.

Straight to the point, easy to understand, very relevant for good coding practices.

Easy to understand so far Very good course and easy to understand with simple examples.

Easy to understand new information.

I think this cource is clear and easy to understand, and the author maked it interesting!

Teacher is good at explaining what happens and easy to understand at the end.

Straight to the point, easy to understand, well demonstrated examples by someone who obviously knows the subject very well.

Extremely practical and easy to understand.

Clear and easy to understand explanations with practical examples.

Clear, concise and the examples easy to understand the concepts All the plugins he uses during coding are quite confusing for me.

Instructor provides lots of examples and presents the material in an easy to understand format.

Easy to understand...great examples.

Very easy to understand and fast paced.

Read more

real life

I would use the lessons in real life issues.

I have seen some "real life" problems that I would probably do and in the videos we have solutions to overcome those problems Very nice course.

Many patterns are well known an used in real life.

Was hoping to see more "real life" scenarios instead of all text output.

It explains the concept but not giving real life example I am learning fast.

I'm new to the design principles but whatever i am learning from this course is worth Very good explanation It didn't tell about when to use single responsibility pattern, some real life scenarios would be better.

Read more

real world

IMHO, samples and exercises could be somewhat more realistic, or there could be listed more real world scenarios where the particular pattern could/should be applicable.

Author also mentions NuGet packages which help implementing some design patterns in real world applications.

The SOLID introduction was nice but it fell short of real world examples, in so far as how it can be used.

I started implementing these design right away Videos are too fast to digest, please spend some time in explaining before coding directly in Visual Studio So far, this has been a tremendous course to learn from putting information into a neatly formatted way and teaching the material using real world examples which is very helpful.

Not quite real worlds but gets the point across extremely well.

Read more

keep up

As a side note, I think that using Resharper to generate code does turn up the pace and makes it harder to keep up as a code-along for those who opt out of the tool, but I do understand the need to speed up an otherwise very extensive and time consuming course.

Fantastic job - keep up the good work!

keep up with the great job Part of the course is to explain the observer pattern and that is never shown (even though there is an entire section on it).

Need to have intermediate OOP knowledge to keep up.

Keep up !!!

Read more

other courses

maybe I need to take other courses first.

Very happy and have purchased two other courses from the same Tutor.

Other courses are too short or do not go into enough depth.

Look forward to your other courses.

I am thinking of enrolling to his other courses in future.

Read more

exactly what

Yep This is exactly what I needed!

To learn something new , we should be aware of exactly what was the issue earlier Too fast in explanation, sure it shows that the author is fluent with technology but also he needs to understand that we are following and not discussing.

This course is doing a great job of filling in my knowledge gaps, which is exactly what I need it for.

This is exactly what I've been looking for as a new developer.

too fast for me.. Instructurs speed is very high.some candidate cant follow .. interesting detailed I needed to take my programming skills up a notch and this course is exactly what I needed hes got the same dev environment as me Things goes soo quick.

Read more

deep understanding

It really shows his deep understanding and not just reteaching what another persons has said.

the video tells us about the basic principal of many advance technique that can be used in a development, but the term and method used for it needs a deep understanding in C# first.

Explanation is clear and understandable, reflects deep understanding.

I recommend it to everyone who is interesting in quick and deep understanding of design patterns.

Read more

better if

might be better if the sample provided quite generic C#.

They would be better if expected output was more spelled out.

Personally, it could have been better if he started with basic C# syntax.

The explanations are unclear, learners should follow along a 9-10 min video so they may understand what the author plans to do... this could be better if at the beginning of each lecture a glass diagram (which is necessary when the auhtor is talking about the architecture) could be shown showing the relation of the classes.

Read more

subject matter

Dmitri Nesteruk demonstrates mastery in subject matter and tools.

I am learning more than the subject matter alone.

Very clean and nice approach to the subject matter with good examples.

The instructor is brilliant at explaining the subject matter in a way that I can really easily understand.

I really like the way in which the instructor takes his time to explain every step in thorough detail - this really REALLY helps me understand the subject matter well.

Read more

observer pattern

Watched the observer pattern but when I bought the pack I hoped it would be a little more in depth got a great understanding of events and eventhandlers now so a great start for more advanced topics of the observer pattern.

At the end of 103, the last video in the observer pattern section, he states, “Now in the case of observer and observer it's a fairly similar story and not quite the same.

An observer pattern allows "observers" to subscribe to "observables".

Read more


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Research Tech, Design/Production Specialist $43k

Freelance Interior design $47k

Account Design Specialist $58k

Web Design Contractor $77k

Set Renderer/ Prop Design $80k

switchgear design and construction $95k

Mold Design Engineering (CAD) $104k

LNG Pressure Vessel & Mechanical Design Engineer Lead $124k

Senior Substation Design/P&C/Relay/Automation/SCADA Engineer $127k

Project Manager, Systems Design & Development $132k

ASIC Design Engineer 3 $185k

Software Design Engineer in Test Contractor 2 $203k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.2 based on 566 ratings
Length 20 total hours
Starts On Demand (Start anytime)
Cost $12
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now