HOME > Development > Software Architecture- Dependency Injection for C# Devs

Software Architecture- Dependency Injection for C# Devs

  • Development
  • Dec 23, 2024
SynopsisSoftware Architecture: Dependency Injection for C# Devs, avai...
Software Architecture- Dependency Injection for C# Devs  No.1

Software Architecture: Dependency Injection for C# Devs, available at $54.99, has an average rating of 4, with 86 lectures, based on 406 reviews, and has 6012 subscribers.

You will learn about 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 This course is ideal for individuals who are Any C# developer who wants to learn about Dependency Injection and IoC-Frameworks It is particularly useful for Any C# developer who wants to learn about Dependency Injection and IoC-Frameworks.

Enroll now: Software Architecture: Dependency Injection for C# Devs

Summary

Title: Software Architecture: Dependency Injection for C# Devs

Price: $54.99

Average Rating: 4

Number of Lectures: 86

Number of Published Lectures: 86

Number of Curriculum Items: 86

Number of Published Curriculum Objects: 86

Original Price: $44.99

Quality Status: approved

Status: Live

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
  • Who Should Attend

  • Any C# developer who wants to learn about Dependency Injection and IoC-Frameworks
  • Target Audiences

  • Any C# developer who wants to learn about Dependency Injection and IoC-Frameworks
  • 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

  • RefactoringExample 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. 

    Course Curriculum

    Chapter 1: Before taking the Course

    Lecture 1: How to Ask Questions

    Lecture 2: Introduction to Unit Testing

    Lecture 3: Download Source Code and Slides

    Lecture 4: English Subtitles

    Lecture 5: Join .NET Community of Students

    Chapter 2: Dependency Inversion Principle and Dependency Injection

    Lecture 1: Outline

    Lecture 2: Definition of DIP

    Lecture 3: Dependencies

    Lecture 4: Volatile and Stable Dependencies

    Lecture 5: Definitions of IoC and DI

    Lecture 6: DIP Violation Demo

    Lecture 7: Refactoring to a Better Design Applying Dependency Injection

    Lecture 8: Dependency Injection Techniques

    Lecture 9: Architectural Implications

    Lecture 10: Common Smells of DIP Violation

    Lecture 11: Conclusion

    Chapter 3: Introduction to IoC-Containers (or DI-Containers)

    Lecture 1: Outline

    Lecture 2: Pure DI and IoC-Containers

    Lecture 3: Building a Simple IoC-Container

    Lecture 4: Service Locator Design Pattern

    Lecture 5: Demo With an IoC-Container

    Lecture 6: Conclusion

    Chapter 4: Dependency Injection – Related Anti-Patterns & Refactorings

    Lecture 1: Outline

    Lecture 2: Control Freak

    Lecture 3: Hidden Dependencies with Service Locator

    Lecture 4: Temporal Coupling and Constructor Injection

    Lecture 5: Constructor Over-Injection

    Lecture 6: Ambient Context

    Lecture 7: Facade Service

    Lecture 8: Property Injection VS Bastard Injection

    Lecture 9: Cyclic Dependencies

    Lecture 10: Conclusion

    Chapter 5: Dependency Injection Real-World Example

    Lecture 1: Outline

    Lecture 2: Application Overview

    Lecture 3: Data Access and Models

    Lecture 4: UI-Side

    Lecture 5: The Problem of Tight Coupling

    Lecture 6: Refactoring Process

    Lecture 7: Isolating the Bootstrapper

    Lecture 8: Consequences

    Lecture 9: Conclusion

    Chapter 6: Reaping the Fruits of DI

    Lecture 1: Outline

    Lecture 2: Adding New DAL

    Lecture 3: Writing Unit Tests for View Models

    Lecture 4: Conclusion

    Chapter 7: DI-Containers (IoC-Frameworks)

    Lecture 1: Outline

    Lecture 2: Overview of DI-Containers

    Lecture 3: Unity DI-Framework

    Lecture 4: Late Binding with Unity

    Lecture 5: Aspect-Oriented Programming (AOP)

    Lecture 6: Demonstration of the Problem of Boilerplate Code

    Lecture 7: Implementing AOP by Intercepting

    Lecture 8: Interception vs Pure DI vs AOP Tooling

    Lecture 9: Autofac and Castle.Windsor DI-Containers

    Lecture 10: Problems Related to DI-Containers

    Lecture 11: Conclusion

    Lecture 12: BONUS Lecture

    Chapter 8: Appendix. Intro to Unit Testing. Getting Started

    Lecture 1: Outline

    Lecture 2: What is a Unit Test

    Lecture 3: Unit Testing Frameworks

    Lecture 4: Your First Unit Test

    Lecture 5: Naming Conventions

    Lecture 6: Running and Debugging Unit Tests

    Lecture 7: Benefits of Unit Tests

    Lecture 8: Who Should Write Unit Tests and When

    Lecture 9: Programmers Oath

    Lecture 10: Exercise: Degree Converter

    Lecture 11: Solution: Degree Converter

    Lecture 12: Conclusion

    Chapter 9: Appendix. Intro to Unit Testing. NUnit Framework

    Lecture 1: Outline

    Lecture 2: Assert Intro

    Lecture 3: Assert Demo

    Lecture 4: Arrange-Act-Assert

    Lecture 5: Running Tests from the Console

    Lecture 6: SetUp and TearDown

    Lecture 7: OneTimeSetUp and OneTimeTearDown

    Lecture 8: Parameterized Unit Tests

    Lecture 9: Grouping and Ignoring Unit Tests

    Lecture 10: Code Coverage

    Lecture 11: Exercise: FizzBuzz

    Lecture 12: Solution: FizzBuzz

    Lecture 13: Exercise: Parsing Roman Numerals

    Lecture 14: Solution: Parsing Roman Numerals

    Lecture 15: Exercise: Stack

    Lecture 16: Solution: Stack

    Lecture 17: Conclusion

    Instructors

  • Software Architecture- Dependency Injection for C# Devs  No.2
    Engineer Spock
    Software Engineer – 1000+ Reviews, Average Score – 4.5
  • Rating Distribution

  • 1 stars: 12 votes
  • 2 stars: 17 votes
  • 3 stars: 65 votes
  • 4 stars: 147 votes
  • 5 stars: 165 votes
  • Frequently Asked Questions

    How long do I have access to the course materials?

    You can view and review the lecture materials indefinitely, like an on-demand channel.

    Can I take my courses with me wherever I go?

    Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!