Software Architecture: Dependency Injection for C# Devs

Learn Dependency Injection techniques along with an IoC-framework (DI-Container). Grow Architecture applying DI.

4.60 (401 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Software Architecture: Dependency Injection for C# Devs
5,994
students
5.5 hours
content
Jul 2020
last update
$54.99
regular price

What you will learn

Deeply understand the concepts of Dependency Injection and Inversion of Control

Apply Dependency Inversion Principle (DIP) in practice

Understand the concept of DI-Containers (IoC-Containers)

Build a trivial IoC-Container on your own

Apply existing IoC-Containers (frameworks)

Refactor your code by applying DI coming up with significantly improved Architecture

Write unit tests (this course includes introduction to Unit Testing)

Apply AOP (aspect-oriented programming) techniques

Why take this course?

Build a solid foundation in software architecture applying Dependency Injection with IoC-Containers

In many of my courses I use techniques of Dependency Injection and each time students write me private messages saying that they don't what it is and thus they don't understand what's going on in the course I teach. This is very unfortunate from the learning perspectives.

Dependency Injection is the set of techniques that allow to supply dependencies to objects. Actually, if you have ever passed dependencies via constructors, then you applied the so-called constructor injection. Dependency Injection (DI) is simple and difficult at the same time. On one hand, DI is comprised of simple techniques and on the other hand, when we need to bring DI to the next level, we need to make things more complicated using the so-called DI or IoC (Inversion of Control) Containers. These are the frameworks which perform dependency injection automatically. You just need to set one up in the application root (an extremely important notion which you'll learn about in the course) and after that, it will resolve all the dependencies it knows about in the runtime.

If you still don't understand what am I talking about, just believe me, you absolutely need to know about Dependency Injection. This course will tremendously improve your understanding of how software architectures emerge. So, this course is "must watch" for anyone who still doesn't understand what is DI and IoC-Containers.

Content and Overview

This course is aimed at all kind of developers. It provides solid theoretical base reinforced by practical material.   

The course covers:

  • Introduction to Inversion of Control:
    Dependency Inversion Principle (DIP), Inversion of Control (IoC), Dependency Injection (DI),
    Dependencies and their types, Pure DI and IoC-Containers, Service Locator

  • The Architectural Implications of Dependency Injection

  • DI-related Anti-Patterns & Refactorings: 
    Control Freak, Hidden Dependencies, Temporal Coupling,
    Constructor Over-Injection and how to avoid it,
    Ambient Context, Facade Service, Property Injection vs Bastard Injection, Cyclic Dependencies

  • Refactoring Example of an existing code base applying Dependency Injection

  • How to reap the fruits of DI

  • DI-Containers (IoC-Containers):
    Overview, Unity, Late Binding with Unity, Aspect-Oriented Programming (AOP), Interception vs Pure DI vs AOP Tools,

  • Setting up a bootstrapper with Unity, Autofac and Castle.Windsor

  • Introduction to Unit Testing

Teaching Approach

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All the important concepts are covered. Particularly important topics are covered in-depth.

Take this course, and you will be satisfied. 

Screenshots

Software Architecture: Dependency Injection for C# Devs - Screenshot_01Software Architecture: Dependency Injection for C# Devs - Screenshot_02Software Architecture: Dependency Injection for C# Devs - Screenshot_03Software Architecture: Dependency Injection for C# Devs - Screenshot_04

Our review

đź“š **Course Overview:** The online course on Dependency Injection (DI), Inversion of Control (IoC), and related patterns is rated highly by recent reviewers, with an average global rating of 4.60. The reviews encompass a range of feedback, from concerns about the quality of the course content to high praise for its theoretical foundation and practical examples. **Pros:** - **Comprehensive Theory:** The course provides a significant amount of theory which is highly appreciated by many learners who were looking for in-depth knowledge on the subject. - **Real-world Examples:** Several reviewers commend the course for its real-world examples and references to software engineering giants like Bertrand Meyer, Uncle Bob, and Mark Seeman, adding credibility to the content. - **Clear Explanations:** The explanations of DI and IoC are praised for being clear and well-explained, helping learners understand the concepts behind the scenes. - **Educational Value:** The course is recognized for covering important cutting-edge skills and offering guidance on usage, which is valuable for software engineers. - **Cultural Sensitivity:** Some reviewers appreciate the fact that the instructor's English is understandable, even if it's not their native language. **Cons:** - **Subtitles Issue:** A notable complaint is about the incorrectness of subtitles which, if corrected, could significantly improve the learning experience. - **Practical Application Lack:** Several reviewers suggest that the course would benefit from more practical teaching approaches, such as projects or code exercises, to enhance learnability and application of the concepts taught. - **Mixed Content Order:** Some learners find confusion due to the mixed-up order of lectures at the end of the course, which indicates that the course content may still be a work in progress. - **Theoretical Focus Over Practical:** A few reviewers feel that despite the good theoretical foundation, the course could include more code examples and best practices for DI. - **Engagement and Interaction:** Some learners express a desire for more engagement with students, such as challenges or interactive elements to keep them motivated throughout the course. **General Feedback:** - **Educator's Knowledge:** The deep knowledge of the instructor regarding DI is acknowledged and highly regarded by many reviewers. - **Course Pace and Clarity:** The pace of the course is considered just right, with clear explanations that are both direct and to the point. - **Skill Level Suitability:** It is recommended that learners have a firm grasp on generics before diving into this course, as it is designed for all skill levels. **Conclusion:** Overall, the course on Dependency Injection, IoC, and DIP is well-received for its theoretical depth and real-world application of concepts. However, there is room for improvement in terms of practical examples, subtitle accuracy, course structure, and learner engagement. With these considerations addressed, the course could offer an even more enriching experience for learners at all levels of expertise.

Charts

Price

Software Architecture: Dependency Injection for C# Devs - Price chart

Rating

Software Architecture: Dependency Injection for C# Devs - Ratings chart

Enrollment distribution

Software Architecture: Dependency Injection for C# Devs - Distribution chart
1324854
udemy ID
8/18/2017
course created date
11/20/2019
course indexed date
Bot
course submited by