PRO CODE | Наставничество в IT
582 subscribers
53 photos
5 videos
34 links
IT изнаночка: как крутят опыт, проходят собесы и выбивают офферы.
Менторинг, backend, реальные кейсы, собесы.

По всем вопросам пиши сюда: @blindjoee
Yutube youtube.com/@procodech
加入频道
Всем привет!

Заболел на 10 дней и пока поставил на паузу работу с видео 🤪

Dependency Injection (DI) в ASP.NET Core: что, как и зачем?

DI (Dependency Injection) — это встроенный механизм ASP.NET Core для управления зависимостями в приложении. Он позволяет легко связывать классы и сервисы без жёсткого связывания, упрощая тестирование и поддержку кода.

Популярные контейнеры IoC
В ASP.NET Core по умолчанию используется встроенный контейнер DI, но можно заменить его на сторонний, если нужна большая гибкость:
Autofac — мощный контейнер с поддержкой модульной загрузки.
Scrutor — расширяет стандартный DI, добавляя удобный автоматический сканинг сервисов.
LightInject — лёгкий и быстрый контейнер.
SimpleInjector — заточен под высокую производительность.

Как внедрять зависимости?
В ASP.NET Core используется метод ConfigureServices в Program.cs:
builder.Services.AddSingleton<IMyService, MyService>();

Есть три основных способа внедрения зависимостей:
✔️ Через конструктор (рекомендуемый способ)
✔️ Через параметры метода (Controller action injection)
✔️ Через `IServiceProvider` (нежелательно, но возможно)

Жизненный цикл зависимостей
Каждый сервис может быть зарегистрирован с разным временем жизни:
- Singleton – создаётся один раз на всё время работы приложения.
- Scoped – создаётся один раз на HTTP-запрос (подходит для работы с БД).
- Transient – создаётся каждый раз при запросе зависимости.

Что такое Scope и когда он нужен?
Scope — это область действия зависимостей с жизненным циклом Scoped. Например, при обработке HTTP-запроса создаётся новый Scope, внутри которого доступны Scoped-зависимости. Это удобно для работы с DbContext в Entity Framework, чтобы избежать конфликтов при одновременных запросах.

💡 Использование DI помогает писать гибкий, тестируемый и поддерживаемый код. Если хотите разобраться глубже в ASP.NET Core и прокачаться в .NET — обращайтесь за менторством.

👉 Подробнее про менторство:
Тык сюда

#dotnet #aspnetcore #dependencyinjection #программирование #менторство
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6