Software Architecture: Dependency Injection for C# Devs
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: Programmer's 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
-
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!
You may also like
- Top 10 Language Learning Courses to Learn in November 2024
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024