Design Patterns in C# and .NET (Udemy.com)
Discover the modern implementation of design patterns with C# and .NET
Created by: Dmitri Nesteruk
Last updated August 2025
Our take
Based on the ratings of 14,074 students, a sample of their written reviews and the syllabus, as the course stood in August 2025. No course pays to be reviewed.
This is a long run of live coding demos in Visual Studio. It starts with the SOLID principles, then goes through every Gang of Four pattern: creational, structural and behavioral. It runs 20.7 hours across 174 lectures, with 23 quizzes and 23 coding exercises. Dmitri Nesteruk, a C# MVP since 2009, shows each pattern in code and often puts a dynamic or reactive variation next to the textbook version. The requirements ask for good C# and familiarity with recent language features, and the reviews back that up.
Students like the depth. Reviewers call it very detailed and the most in-depth pattern course they found, and the coding exercises get praise. The complaints repeat, though. Several say the examples are shapes, people, dogs or in-memory databases instead of real business problems, and that simple ideas get overly complicated implementations. Others find the pace fast, and one dislikes the lecturer's delivery. One reviewer says it promises .NET but says little about how patterns show up in .NET apps. About 7,500 of 14,074 ratings are five stars, and roughly 1,900 are three stars or lower.
The last update was in August 2025, and more than 100,000 students have enrolled. A short F# section on functional patterns closes things out. Treat it as a deep reference more than a gentle intro. If you already write solid C# and want to see how patterns bend in modern code, it fits well. If you want quick, practical patterns for web apps, the reviewers' complaints about unrealistic examples suggest it will feel abstract.
Pros
- Covers SOLID plus every Gang of Four pattern, with 23 coding exercises to practice on
- Shows static and dynamic variations of patterns, not just the textbook versions
- Reviewers call the explanations very detailed, with plenty of hands-on C# code
- Taught by a C# MVP since 2009, so the language-level depth is real
Cons
- Many examples are shapes, people and in-memory databases, not realistic business cases
- Several reviewers find the pace fast and some implementations overcomplicated for simple ideas
- Little on .NET-specific or ASP.NET Core use of patterns despite the title
This course is excellent. It’s important to mention that students should have prior knowledge of C# before starting it.
Marked intermediate. The requirements and one reviewer both assume solid C# and recent language features, not beginner hand-holding.
Featured in our guide: The Best C# and .NET Courses on Udemy in 2026
What you will learn
- Recognize and apply design patterns
- Refactor existing designs to use design patterns
- Reason about applicability and usability of design patterns
Course content
28 sections · 174 lectures · 21 hours of video 23 quizzes, 23 coding exercises
- 1Introduction 1 free preview1 lecture · 7 min
- 2The SOLID Design Principles 1 free preview7 lectures · 56 min
- 3Builder 1 free preview10 lectures · 1 quiz · 1.1 hours
- 4Factories10 lectures · 1 quiz · 1 hour
- 5Prototype7 lectures · 1 quiz · 47 min
- 6Singleton8 lectures · 1 quiz · 51 min
- 7Adapter 1 free preview6 lectures · 1 quiz · 53 min
- 8Bridge3 lectures · 1 quiz · 14 min
- 9Composite5 lectures · 1 quiz · 25 min
- 10Decorator10 lectures · 1 quiz · 1.3 hours
- 11Façade3 lectures · 1 quiz · 13 min
- 12Flyweight4 lectures · 1 quiz · 28 min
- 13Proxy 1 free preview11 lectures · 1 quiz · 1.6 hours
- 14Chain of Responsibility5 lectures · 1 quiz · 32 min
- 15Command5 lectures · 1 quiz · 30 min
- 16Interpreter5 lectures · 1 quiz · 28 min
- 17Iterator6 lectures · 1 quiz · 32 min
- 18Mediator5 lectures · 1 quiz · 42 min
- 19Memento5 lectures · 1 quiz · 23 min
- 20Null Object5 lectures · 1 quiz · 23 min
- 21Observer9 lectures · 1 quiz · 1.7 hours
- 22State7 lectures · 1 quiz · 44 min
- 23Strategy 1 free preview5 lectures · 1 quiz · 22 min
- 24Template Method4 lectures · 1 quiz · 13 min
- 25Visitor9 lectures · 1 quiz · 1.4 hours
- 26Course Summary4 lectures · 21 min
- 27Additional Lectures7 lectures · 1.7 hours
- 28Functional Patterns in F#8 lectures · 52 min
Who it is for
The instructor says it suits
- Beginner and experienced developers
- Anyone interested in design patterns
What you need before you start
- Good understanding of C#
- Familiarity with latest C# features
- Good understanding of object-oriented design principles
How it compares
Against the other 194 rated Udemy courses in C# on CourseDuck:
- Rating4.5 out of 5higher than 58% of them
- Reviews14,074#6 of 195 by number of reviews
- Length20.7 hourslonger than 89% of them
- Last updatedAugust 2025more recently than 72% of them
Quality Score
Overall Score : 90 / 100
Course Description
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.
Instructor Details
- 4.5 Rating
14,074 Reviews
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.
More courses by Dmitri Nesteruk
Learn Parallel Programming with C# and .NET (2019)
4.6 (4,564 Reviews)
Provider: Udemy
Time: 5.3h
$14.99
More C# courses
C# Developers: Double Your Coding Speed with Visual Studio (2018)
4.7 (4,035 Reviews)
Provider: Udemy
Time: 2.2h
$13.99
Object Oriented Programming with C# - Beginner to Advanced (2020)
4.7 (2,063 Reviews)
Provider: Udemy
Time: 5.6h
$64.99
Learn Game Development with C# Programming and MonoGame! (2025)
4.7 (1,094 Reviews)
Provider: Udemy
Time: 6.6h
$12.99
Reviews
By Jaime Dominique Boillot Garcia on 4/10/2026
Habla demasiado rápido y pica todo el código igual, demasiado rápido. Como formador y como curso me parece que si no tienes un nivel de inglés alto y unos conocimientos de código muy altos, no te vas a enterar de mucho. Creo que podría y debería ir con más calma y explicar mejor todo lo que va haciendo. Si este curso está orientado a seniors, se debería exponer en el mismo.
By Neal Fulves on 3/13/2026
The one thing that's distracting is the way he talks, and it makes it hard to follow when it doesn't have to be. Sentences run-on, volume swells, tone shifting swells are just a few. It sounds like he's trying too hard to sound professional and doesn't know what it should sound like during the course.
By Juan Miguel Paulino Carpio on 10/25/2025
This course is excellent. It’s important to mention that students should have prior knowledge of C# before starting it. Fortunately, I took it after gaining some experience with the language. Most of the negative reviews seem to come from people who don’t have a solid grasp of C#.
By Anonymized User on 8/7/2023
This was a great course to start learning Design Patterns in depth. Even though most examples also work in .Net Core, there are still examples that don't. I think there should be alternatives for these cases, other than that I enjoyed the course a lot although there were times it was hard to understand
By Sławomir Stańczyk on 6/23/2023
Awesome course, great teacher, lots of practical knowledge! The only thing that could be added to this super course is to make the entire application (e.g. in WPF technology) based on design patterns with a simple database. I see also there is still room for improvement to automatic translation into Polish language.
By Tobias Röck on 6/17/2023
Amazing Course for Advanced C# Programmer No unnecessary informations, very clean coding (of course public fields for simplicity reasons, etc. but that is always mentioned) Very long course for the money with all modern patterns you could wish Helped me a lot to get to the next level of programming!
By Kuba K on 1/29/2023
This course was perfect for me. It made me realize how little i know and made me motivated to keep learning new stuff. Needed 3 atemps to finish it - each time i came back with more knowledge. It helped me during job interviews a lot. Thanks Dimitri :)
By Lenin Espinoza on 4/22/2022
The course is great, I was able to review a lot of concepts and learn some new to me. I think i need some more scenarios combined with technologies to apply: for example I will look some to apply with asp .net mvc, and in the scenario of a migration. Thanks
By Ozan Can ACAR on 2/17/2022
Even though the courses a bit fast paced and the examples lacks some clarification, Dmitri is an awesome Software Engineer and Instructor. The effort he put in this course is unbelievable. I've taken notes during lectures and i'll try my best to implement these in my work. Thank you so much, i always recommend your courses to my co-workers.
By Ross Hendry on 4/13/2020
Perhaps one of the most challenging things about a career in software development is acquiring the knowledge and experience to make things elegant, extensible, manageable and efficient. As well as structuring your applications in a way that makes it easier for someone to see the why and the how of your code. A major part of that is developing things with coherent design patterns in mind. Dmitri does an excellent job at communicating exactly what those patterns are, and how to implement them. Perhaps most importantly though - he clearly lays out each pattern's strengths and weaknesses, often with real world context. You aren't just learning academic theory here - these are practical skills you'll add to your toolkit. None of that is an easy and Dmitri should be applauded for doing it so successfully. By the end of this course you'll see what you may already be doing right whilst (mostly) learning a ton of new tricks and knowledge that will enable you to confidently approach future projects. There is a bunch of great lectures here, with each section tied off by fun yet challenging coding exercises that apply what you've learned. Having finished the course I can honestly say I feel more confident and knowledgeable than I did before I started. Plus, all the code you'll end up writing is great reference material for the future too. Thanks a lot mate! P.S. The course is also updated fairly regularly, there's a sizeable 90 minutes of Bonus Lectures to go with the core course! Look forward to seeing more of those, very practical!












