Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ Microsoft AZ-900
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Personal Transformation Life Purpose Meditation CBT Emotional Intelligence
Web Development JavaScript React CSS Angular PHP Node.Js WordPress Vue JS
Google Flutter Android Development iOS Development React Native Swift Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
Microsoft Power BI SQL Tableau Business Analysis Data Modeling Business Intelligence MySQL Data Analysis Blockchain
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Business Plan Startup Online Business Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
2021-02-15 17:18:03
30-Day Money-Back Guarantee
Development Software Engineering Software Design

SOLID Design Principles in C#

The complete guide to great design for C# programmers
Rating: 3.5 out of 53.5 (9 ratings)
48 students
Created by Chuck McCullough
Last updated 9/2019
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • SOLID Design Principles
  • Design Patterns
  • How to design great software

Course content

3 sections • 16 lectures • 2h 33m total length

  • Preview00:59
  • Preview01:04
  • Using Udemy Code Exercises
    14:38

  • Design Goals
    10:32
  • Process - Good, Bad, Ugly
    14:03
  • Preview15:31
  • Minimalistic Design and Test Driven Development
    10:34
  • The Company Class
    1 question
  • The Employee Class
    1 question

  • Single Responsibility Principle
    11:24
  • SRP Lab
    03:40
  • SRP Lab
    1 question
  • Open/Close Principle
    14:57
  • OCP Lab
    03:52
  • OCP Lab - Refactoring Employee
    1 question
  • OCP - Refactoring Company
    1 question
  • Preview14:41
  • LSP Lab
    1 question
  • Post Mortem on LSP Lab
    06:49
  • Interface Segregation Principle
    16:27
  • Interface Segregation Lab
    1 question
  • Dependency Inversion Principle
    13:07
  • DIP Lab
    1 question
  • Conclusions
    00:59

Requirements

  • Experience coding in C#
  • Experience with object-oriented design

Description

This course dives into the aspects of software engineering that produce both great and failed software.  We start off by looking at our goals for design, the common smells, process and the SOLID principles.  This course reinforces best practices using the experiences of the course author and instructor, Chuck McCullough.  As a practicing software engineer for over 30 years and having completed dozens of projects, he has the insights to cut through the theoretical and jump right to the important stuff!

There is no silver bullet or magic formula for great design.  Design is part art and part science and many design concepts are difficult to explain and grasp.  This course focuses on the issues of design in as simple and concise way possible.  Chuck also communicates that it is not necessary to implement all SOLID principles to have a great design.  In fact, many designs are overly complicated because the designers were unbending in SOLID principles - this is one of the many design smells that Chuck addresses in the course.

Using C# to demonstrate with lots of hands-on labs, this course teaches:

  • Design Goals - What are we trying to accomplish?

  • Design Smells - How to identify and objectively articulate bad design choices.

  • Test Driven Development and minimalistic design and implementation - Avoid overdesign and facilitate design changes.

  • Process - What are the best ways to proceed with software development and measure progress.

  • Single Responsibility Principle - Only one reason to change

  • Open/Close Principle - Open for business, closed for modification

  • Liskov's Substitution Principle - a subtype can do more and require less

  • Interface Segregation Principle - interfaces are for clients

  • Dependency Inversion Principle - don't call us, we'll call you!

This course is full of examples and hands-on opportunity along with 24/7 access to help and immediate feedback on labs.

Who this course is for:

  • Developers responsible for software design

Instructor

Chuck McCullough
Software Engineer
Chuck McCullough
  • 4.2 Instructor Rating
  • 54 Reviews
  • 323 Students
  • 5 Courses

Chuck is a professional software developer with over 30 years of experience.  He began his career developing C applications for a large client in the financial industry.

In 1989, Chuck joined IBM developing and testing APIs for a large project.  Most of this work was in C++.

In 1992, Chuck started McCullough & Associates, a professional services and training organization. Since then, M&A has provided development and training services to companies, governments, and universities around the world.

As a software architect, Chuck is proficient in Java, C#, C++ and many other languages and platforms.  He is a strong practitioner of best practices, such as test-driven, iterative, pattern rich object-oriented application development.

Chuck has trained thousands of developers all over the world.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.