ASP.NET Core: Внедрение зависимостей (Dependency Injection) | Transient, Scoped и Singleton + при...
Toolliyo
0:00 / 0:00
ASP.NET Core: Внедрение зависимостей (Dependency Injection) | Transient, Scoped и Singleton + при...
426 просмотров · Трансляция закончилась 1 месяц назад
Toolliyo
429 подписчиков
426 просмотров · Трансляция закончилась 1 месяц назад
Внедрение зависимостей — одна из важнейших концепций в ASP.NET Core, но простого запоминания Transient, Scoped и Singleton недостаточно.
В этом практическом курсе по ASP.NET Core 10 / .NET 10 Web API мы разберем внедрение зависимостей с нуля, используя реальные примеры и работающий код на C#.
Вместо того чтобы тратить весь урок на теорию, мы создадим новый проект Web API и увидим, как контейнер внедрения зависимостей ASP.NET Core создает и управляет экземплярами сервисов.
Мы будем работать с реалистичными сценариями DevStore и рассмотрим концепции, используемые разработчиками в продакшене.
В этом видео вы узнаете:
Что на самом деле решает внедрение зависимостей
Внедрение зависимостей через конструктор в ASP.NET Core 10
Как работает встроенный контейнер DI .NET
AddTransient
AddScoped
AddSingleton
Transient против Scoped против Singleton
Время жизни сервисов в реальном коде
Как проверить время жизни сервисов с помощью Guid
Внедрение сервиса в контроллер
Внедрение одного сервиса в другой
Графы зависимостей
Несколько реализаций сервисов
IEnumerableT с внедрением зависимостей
Регистрация сервисов на основе фабрики
Сервисы с ключами
AddKeyedScoped
Выбор конкретных реализаций с использованием ключей
Внедрение зависимостей в реальных сценариях электронной коммерции
Внедрение зависимостей с EF Core
Почему DbContext обычно имеет область видимости
Проблемы зависимостей Singleton → Scoped
Зависимость с привязкой к источнику
Потокобезопасность с сервисами Singleton
IServiceProvider
Почему шаблоны локаторов сервисов обычно должны быть Избегайте
Распространенные ошибки внедрения зависимостей
Невозможность разрешения ошибок сервиса
Проектирование внедрения зависимостей в производственной среде
Вопросы для собеседования по внедрению зависимостей в ASP.NET Core
ЧТО МЫ СОЗДАЕМ
Мы создаем практический веб-API на ASP.NET Core 10 и постепенно разрабатываем:
ProductsController
↓
IProductService
↓
ProductService
↓
IPricingService
↓
PricingService
Затем мы демонстрируем:
Transient
Scoped
Singleton
используя фактические идентификаторы экземпляров сервисов, чтобы вы могли увидеть разницу, а не просто запоминать определения.
Мы также рассматриваем реалистичные примеры, включающие:
Ценообразование продуктов
Уведомления
Реализация электронной почты/SMS
Платежные системы
Сервисы с ключами
Внедрение зависимостей EF Core
ВАЖНАЯ КОНЦЕПЦИЯ ДЛЯ ПРОИЗВОДСТВА
Одна из важнейших частей этого курса — понимание того, почему это может быть опасно:
Синглтон
↓
Ограниченная область видимости
Мы целенаправленно обсуждаем несоответствие времени жизни и как правильно проектировать граф зависимостей.
Это также распространенный сценарий собеседований для опытных специалистов по ASP.NET Core.
КОМУ СЛЕДУЕТ ПОСМОТРЕТЬ?
Это видео полезно для:
Начинающих, изучающих ASP.NET Core
Разработчиков на C#
Разработчиков .NET
Разработчиков ASP.NET Core
Бэкенд-разработчиков
Разработчиков Web API
Разработчиков Full Stack .NET
Старших разработчиков
Инженеров-программистов, готовящихся к собеседованиям по .NET
Разработчиков, переходящих с устаревшего .NET на современный ASP.NET Core
ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ
C#
.NET 10
ASP.NET Core 10
ASP.NET Core Web API
Visual Studio 2026
Внедрение зависимостей
Entity Framework Core
SQL Server
Swagger/OpenAPI
КУРС ПО DEVSTORE
Этот урок является частью курса:
ASP.NET Core 10 Web API — от нуля до профессионала
В ходе курса мы постепенно создаем DevStore, веб-API для электронной коммерции, готовый к использованию в производственной среде.
Мы фокусируемся на практической разработке, а не только на теоретических объяснениях.
РАЗДЕЛЫ / ВРЕМЕННЫЕ МЕТКИ
00:00 Мощный хук — почему внедрение зависимостей важно
02:30 Что мы создаём
04:00 Создание нового веб-API для ASP.NET Core 10
07:00 Первый пример внедрения зависимостей
11:00 Внедрение зависимостей через конструктор
14:00 Почему бы не использовать `new` везде?
17:00 Время жизни временных объектов
22:00 Время жизни объектов с ограниченной областью видимости
27:00 Время жизни одиночного объекта
32:00 Временные объекты против объектов с ограниченной областью видимости против одиночных объектов — демонстрация в реальном времени
37:00 Сервисы ценообразования в DevStore в реальных условиях
42:00 Внедрение зависимостей между сервисами
46:00 Множественные реализации с IEnumerableT
50:00 Сервисы с ключами в ASP.NET Core
55:00 Регистрация на основе фабрик
58:00 Проблема одиночного объекта → объекта с ограниченной областью видимости
01:03:00 Внедрение зависимостей с EF Core
01:07:00 Распространенные ошибки внедрения зависимостей
01:12:00 Отладка: Невозможно разрешить зависимость сервиса
01:16:00 Лучшие практики внедрения зависимостей в производственной среде
01:20:00 Вопросы для собеседования по внедрению зависимостей в ASP.NET Core
01:25:00 Практическое задание & Краткий обзор
Внедрение зависимостей в ASP.NET Core 10, Внедрение зависимостей в ASP.NET Core, Внедрение зависимостей в .NET 10, Внедрение зависимостей в C#, Внедрение зависимостей в ASP.NET Core, Учебник по внедрению зависи...