Software Architecture: Dependency Injection for C# Devs (Udemy.com)

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

Created by: Engineer Spock

Produced in 2021

icon
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

icon
Quality Score

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

Overall Score : 86 / 100

icon
Course Description

Build a solid foundation in software architecture applying Dependency Injection with IoC-ContainersIn 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 dependenciesviaconstructors, then you applied the so-calledconstructor 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 DIor 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 importantnotion 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 understandwhat am I talking about, just believe me,you absolutely need to know about Dependency Injection. This course will tremendously improve your understanding of how softwarearchitectures emerge. So, this course is "must watch" for anyone who still doesn't understand what is DI and IoC-Containers.
Content and OverviewThis 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: DependencyInversion Principle (DIP), Inversion of Control (IoC), Dependency Injection (DI),Dependencies and their types, Pure DI and IoC-Containers, Service LocatorThe Architectural Implications of Dependency InjectionDI-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 DependenciesRefactoring Example ofan existing code base applying Dependency InjectionHow to reap the fruits of DIDI-Containers (IoC-Containers):
Overview, Unity, Late Binding with Unity, Aspect-Oriented Programming (AOP), Interception vs Pure DI vs AOPTools,Setting up a bootstrapper with Unity, Autofac and Castle.
WindsorIntroduction to Unit TestingTeaching ApproachNo 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.
Who this course is for:
Any C# developer who wants to learn about Dependency Injection and IoC-Frameworks

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

Software Architecture: Meta and SOLID Principles in C#

$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

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.3

41 total reviews

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

By Miguel Nunes on 11/23/2020

This course is all about Mark Seeman articles/book/examples and felt that the author could not use its own examples and words to explain the topics

By Habibul Bashar on 11/7/2020

Yes.

By Camilo Forero Gonzalez on 9/25/2020

The code examples before and after for all of the examples are needed to understand the refactors. The last part was clear but would be great to have the code exercises.

By Petr Zvodn on 8/2/2020

Good course, lector is acknowledged about the topic and seems to be passionate about helping people become better programmers. I would just appreciate more engagement with students, to motivate me to be more active during the course - some challenges, don't copy & paste code so the student is motivated to write stuff and think about what he/she is writing. More challenges.
In general, I learned a lot and got nice overview about the topic.

By Pablo Andrs Argente on 7/7/2020

Buen curso, recomendable, el autor explica de manera detallada pero a la vez no demasiado extensa. Su ingls se entiende muy bien para una persona cuyo idioma nativo no es ingls.

By Ivan Temelkov on 5/14/2020

DI is a very important topic and in my opibion the instructor is well prepared.

By Jordan Johnson on 5/14/2020

Great course! Good examples. Crucial topics that I need for my everyday job.

By Petros Manesis on 4/23/2020

The speaker has really deep knowledge of dependency injection. I would like the course to be even more practical with more code examples of DOs and DON'Ts and best practices regarding dependency injection.

By Martijn den Hoedt on 2/24/2020

Bad english, hard to keep listening. Expected explanation how a unit testing framework is implemented, but none of that is included in the course.

By Glauber Ataide on 11/23/2019

A good introduction, I expected more advanced themes and discussions, but it's ok. I really didn't understand what the bonus lectures on unit tests have to do with the rest of the course. Of course DI is very important to make our classes and methods testable, but no DI at all was used in the bonus lectures.

By Karim Usama on 10/27/2019

I dunno what to say, i started MVVM course(which i didnt understand )and suddenly in the middle of it he says that i have to buy this course to understand the rest of MVVM course , and when i bought it find myself again not understanding anything, suddenly u find urself infront a huge blocks of code that i do not understand and instead of writing it slowly to give me a better understanding for each line, he fast forward the course which makes the u understanding a disaster and some times turns off the voice too . Briefly it is a total waste of money

By Ajinkya on 8/22/2019

Too much Theoretical explanation. The examples could be more realistic scenarios.
The volume is too low. A bit of boring.