Software Architecture: Meta and SOLID Principles in C# (Udemy.com)

Learn how to develop maintainable software systems applying Design Patterns based on Meta and SOLID Principles

Created by: Engineer Spock

Produced in 2021

icon
What you will learn

  • Determine if a class has too many responsibilities
  • Apply SRP to make classes more granular
  • Determine the smell of duplication caused by OCP violation
  • Apply OCP to remove or prevent duplications
  • Make client's lives more enjoyable by applying ISP, making interfaces more granular
  • Determine LSP violations which break client's code
  • Apply LSP to come up with proper inheritance
  • Apply DIP to develop plugin architecture
  • Build your own simple IoC-Container
  • Build clean API in C#
  • I'm tired to list all the stuff you'll be able to do after this course )))

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 82 / 100

icon
Course Description

SOLID is an acronym which stands for SRP, OCP, LSP, ISP and DIP. These five acronyms in their turn stand for: Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion PrincipleIn this course, youll learn how to apply meta and SOLIDprinciples so that your application will live a long healthy life. It means you are going to learn how to write code of the high quality: readable, understandable and reliable. Improve your knowledge in object-oriented programming Understand the meta principles on which all the other development principles are based Understand the symptoms of code defects Learn the foundations of SOLID principlesLearn how to detect the violations of SOLID principles and how to fix the problems Learn how meta principles and SOLID principles are related to each other and how to find the balance between them Foundations of writingobject-oriented codeDespitethe fact that C# is a very rich on features language, it's very common to see poorly designed and implemented applications in a real world. Language by itself does not guarantee that the architecture of an application will be great. In order to design and build maintainable software, we need to understand the principles of software development. This video course is exactly about how to achieve clean and maintainable software. You probably have already heard the following well-known statement:
most code sucks.
Well, this course is all about how to produce code which doesn't suck. Owning skills of producing a well-designed and well-implemented typesis the prerequisite for the other developers to treat you as a decent professional. Content and Overview This course is aimed at middle and senior developers. Solidexperience in C# is required. There are plenty of code examples throughout this course so that you will learn both theoretical and practical material. Starting with SOLID principles we will go further to the meta-principles. Going through the SOLID principles, youll also learn about the related patterns. Then we will get to the problem of contradictions between different principles. Youll learn about the relationships between SOLID principles and metaprinciples. In general, youll learn in this course: SRP OCP LSP ISP DIP These are the SOLID principles. Youll learn the background problems that can be solved by particular principle, youll see the demonstrations in code, youll learn the related patterns to every principle. Learning DIP youll in addition learn what is Dependency Injection, Inversion of Control, IoC-Containers and what are the architectural implications of DI. Here are other topics youll learn in the course: DRY dont repeat yourself KISS keep it simple stupid YAGNI You Aint Gonna Need It SoC separation of concerns CQS command query separation Law of Demeter Principle of Least Astonishment Information Hiding and Encapsulation API Development Principles Contradiction between SOLID and YAGNI Contradiction between OCP and YAGNI What is Architecture and Design Teaching ApproachNo fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.
Take this course, and you will be satisfied!------------------------------------------------------------Keywords related to the course:
Software ArchitectureSOLID Principles Tutorial C#SOLID Tutorial C#Software DesignSOLID PrinciplesSRP, OCP, LSP, ISP, DIPWho this course is for:
Juniors with a solid C# backgroundMiddle developers who want learn or enhance their knowledge about SOLID principles and ArchitectureSeniors who want to have a good reminder of what they already know

icon
Instructor Details

Engineer Spock

I'm thankful enough for that I love what I do.
I began my career as a postgraduate student participating in Microsoft ImagineCup contest.
I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MSK.NET User Group in Moscow.
"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.
What I can say is that software is my art.

icon
More courses by Engineer Spock

Learn Enterprise WPF with XAML from Scratch

$11.99

What's New in C# 6, C# 7 and Visual Studio 2017

$11.99

MVVM in WPF Survival Guide From A to Z

$11.99

API in C#: The Best Practices of Design and Implementation

$11.99

Software Architecture: Dependency Injection for C# Devs

$11.99

Modern .NET Ecosystem and .NET Core

$11.99

icon
More c# courses

C# For Beginners: Learn C# Programming From Scratch

$11.99

Language-Integrated Query  ( C# ) (LINQ)

$11.99

C# Memory Tricks: Learn How To Master The Garbage Collector

$11.99

C# - Complete A to Z C# Masterclass: Hints + Coding Tips

$11.99

Let's Code: C# Programming Exercises for Beginners

$11.99

C# Tutorial - Fundamentals for Beginners

$11.99

icon
Reviews

4.1

102 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Alireza Moghadamzadeh on 11/8/2020

This is a great course to watch for understanding SOLID principles as well as some of the most widely used design patterns.
Examples are very understandable and easy to follow.

By Mansoor Ahmed on 10/25/2020

The examples and demonstrations are very good however, in some places it would have been great to provide simple examples like we had for square and rectangle to explain the principle.
Since, the people who has a banking domain would most likely understand the examples for banking terminal. Hence i have given 4.5 otherwise its a 5 start course.

By Robert DeSautel on 10/19/2020

The Instructor explained the SOLID principles very well. The demonstrations of different type of Dependency Inversion will help me better understand which scenario would best fit my needs.

By Al on 10/15/2020

monoton

By Anthony on 9/21/2020

The most intuitive course on SOLID I have come across.

By Archana Kodange on 9/11/2020

Deep and on point explanations and facts included. Thank you for putting up a wonderful course.

By Marcin Wglowski on 8/20/2020

For me, it was really boring.
Long pauses in talking do not help in focusing.
I am not able to complete this course.

By Sebastian N on 7/23/2020

It's a really good overview of the SOLID Principles as they're well explained. The description of the MetaPrinciples are brief and accurate, which I also really liked.

By Boris Masnec on 7/7/2020

To abstract and not enough details

By Craig Thompson on 7/2/2020

This was an interesting and informative course, thanks

By David Guerrero on 6/23/2020

In several topics explanations are very generic and not clear

By Anonymized User on 6/20/2020

the explanation is hard to digest for few topic...content is good but it gets speedy when you listen and watch the same. Instructor is knowledgeable.