Удобная навигация по видео :) 0:00 - Начало 1:00 - Dependency Injection и DI Container 4:54 - Registration Lifetimes: Singleton, Scoped, Transient 9:49 - Live example (Visual Studio 2022, .NET 6) 24:00 - Лучшие практики применения Singleton, Scoped, Transient
Обожаю таких людей, которые на широкую аудиторию способны объяснить, казалось бы, сложные вещи понятным языком, донося саму суть происходящего. Если бы так в школе или универе объясняли, а то обычно дают какую - то бесполезную замудренную херню, непонятно зачем и как это применять. Ролик шикарный!
Чувак, ты просто огонь по объяснению! Вот такие люди и достойны уважения как учителя. Жаль в жизни их редко встречаешь. Вижу, что давненько нового ничего не выпускал. Надеюсь у тебя все хорошо. Всего тебе самого наилучшего, от души спасибо.
В идеале поподробнее рассказать про бест практики, была такая задача, эти сервисы мы делали синглтон, эти мы делали скоупд потому что... Цены бы не было) спасибо за урок!
Возможно, как продолжение, стоит рассказать про внутреннюю реализацию: как отслеживается объект, что происходит после окончания времени жизни и накидать схему своего контейнера. Спасибо!
Просто шикарный канал, описывающий многие важные элементы работы и разработки .net core приложений. Но самое приятное - это подача, невероятно приятный визуал. Единственный псевдоминус - диктор немного медленно говорит, но на 1.5 смотрится на ура
Для того, чтобы понять смысл Scoped, пришлось ставить видео на паузу и идти качественнее разбираться с HTTP запросами. Вот так и учусь - через одно место 👍🤣 Спасибо, видео очень доступное, если есть понимание об HTTP запросах и понимание - зачем нужны Dependency Injections.
Пожалуйста 🙂 Да, перед просмотром видео, все таки требуется базовое понимание HTTP запроса и DI. Здорово, что Вам удалось понять смысл, хоть и тернистым путем 👍
Два вопроса: 1 дотнет для каждого http запроса создаёт новый transient контроллер? 2 почему в контроллер было внедрение в конструктор а не в метод с использованием атрибута FromServices? Какие зависимости в класс контроллера лучше внедрять в конструктор, а какие в метод?
1. Да, по умолчанию в ASP.NET создаётся контроллер на запрос с временем жизни transient. 2. Внедрение через метод следует использовать, когда потребитель внедренной зависимости меняется при каждом вызове или, когда внедряемая зависимость меняется при каждом обращении к потребителю.
@@codaza-channel извини, второе не понятно. Если есть возможность дай пожалуйста ссылку на источник, в котором бы это объяснялось.. А может быть это инфоповод для нового видео... ;)
@@leonid_konoplin Конечно, вот отличная книга где хорошо объясняются принципы внедрения зависимостей: Внедрение зависимостей на платформе .NET. 2-е издание | Симан Марк, ван Дерсен Стивен
Допустим есть два сервиса в контейнере: один синглтон, другой пусть будет скопед. Синглтон внутри использует второй сервис. Каковым будет поведение синглтона, учитывая что у зависимости жизнь коротка? Все будет работать, но просто логика нарушится?
Спасибо за отличный вопрос. Хорошая новость, что так сделать нельзя. Если Вы всё же попытаетесь это сделать, то при попытке запуска вашего приложения, Вы получите ошибку о том, что Scoped-сервис не может быть инжектирован в Singleton-сервис.
Чел, ты нас усыпить хочешь или донести что-то. Тебя невозможно смотреть на скорости ниже 1.5. Экономь чужое время, братан. Сам контент хороший, тут лайк.
у вас немного не правильное объяснение жизненных циклов. Синглтон не может вызывать сервисы с более коротким жизненным циклом - скопд и транзиент. Скопд в свою очередь не может вызывать транзиент. Причём при попытке сделать это можно словить эксепшн указывающий именно на эту ошибку. с другой стороны, в обратном направлении это работает нормально.
Удобная навигация по видео :)
0:00 - Начало
1:00 - Dependency Injection и DI Container
4:54 - Registration Lifetimes: Singleton, Scoped, Transient
9:49 - Live example (Visual Studio 2022, .NET 6)
24:00 - Лучшие практики применения Singleton, Scoped, Transient
Обожаю таких людей, которые на широкую аудиторию способны объяснить, казалось бы, сложные вещи понятным языком, донося саму суть происходящего. Если бы так в школе или универе объясняли, а то обычно дают какую - то бесполезную замудренную херню, непонятно зачем и как это применять. Ролик шикарный!
У вас огромный талант к преподованию. Удачи.
Чувак, ты просто огонь по объяснению! Вот такие люди и достойны уважения как учителя. Жаль в жизни их редко встречаешь. Вижу, что давненько нового ничего не выпускал. Надеюсь у тебя все хорошо. Всего тебе самого наилучшего, от души спасибо.
Очень классный материал, подача, и вообще ..."вайб". Дружище, возвращайся.......
Отличное объяснение, спасибо! Интересно было бы увидеть видео непосредственно по Dependency Injection
Согласен с предыдущим оратором. Тема прекрасно раскрыта под шикарное музыкальное оформление на фоне. Супер. Подписался на канал.
В идеале поподробнее рассказать про бест практики, была такая задача, эти сервисы мы делали синглтон, эти мы делали скоупд потому что... Цены бы не было) спасибо за урок!
ты просто чудо, не бросай это дело! спасибо большое!
Один из лучших каналов по С#, как говорится братан, хорош, давай ещё, может вот этого всего побольше 🙂
брат ну ты тигр, настоящий лев :)
классная подача материала. по многопоточке купил бы у тебя курс
Возможно, как продолжение, стоит рассказать про внутреннюю реализацию: как отслеживается объект, что происходит после окончания времени жизни и накидать схему своего контейнера. Спасибо!
Просто шикарный канал, описывающий многие важные элементы работы и разработки .net core приложений. Но самое приятное - это подача, невероятно приятный визуал. Единственный псевдоминус - диктор немного медленно говорит, но на 1.5 смотрится на ура
Даешь расширенный пример!)) Спасибо за видео
Благодарю за информацию!
Твои видео, это золото. Жаль, что их так же мало, как настоящего.
Обожаю ваш канал! Более медитативного погружения в программирование ещё нужно поискать
Без лишних слов, простая, искренняя благодарность.
Спасибо за видос огромное, кратко. четко.
Всегда пожалуйста! Вам спасибо за комментарий 👍
Спасибо, это было очень полезно и предельно понятно!
Лучшее обьяснение, что я видел
Хороший канал, спасибо
боже храни codaza!! 🙏
Большое спасибо тебе, добрый человек! По DI урок бы не помешал отдельный)
Очень хорошо. Видно, что шарит более чем.
Очень классно все объясняешь, наглядно и без кучи ненужной инфы!
Зачет
Супер доступно. Твои ролики - огонь! Жаль, что так редко выходят ролики, да и в целом активность низкая что-то(
Очень интересно
Спасибо! Внедрение зависимостей было бы очень кстати разобрать подробнее
Спасибо! Это самое крутое объяснение DI.
Пожалуйста! Очень рад, что информация оказалась полезной. Спасибо, что смотрите и оставляете комментарии :)
@@codaza-channel Вроде и знал и использовал... Но теперь, прям всё по полочкам.
Особенно разница между Scoped и Transient
Для того, чтобы понять смысл Scoped, пришлось ставить видео на паузу и идти качественнее разбираться с HTTP запросами. Вот так и учусь - через одно место 👍🤣
Спасибо, видео очень доступное, если есть понимание об HTTP запросах и понимание - зачем нужны Dependency Injections.
Пожалуйста 🙂 Да, перед просмотром видео, все таки требуется базовое понимание HTTP запроса и DI. Здорово, что Вам удалось понять смысл, хоть и тернистым путем 👍
Как поставить 100500 лайков? Просто топ! Продолжайте внимать видео вы нам очень помогаете 🔥🔥🔥🔥
Да конечно хотим! Тема то важная!
ты лучший, етить-колотить))))))
Круто. Спасибо
Расскажи, плиз, подробнее про сам DI
Твои видосы просто огонь 🔥
спасибо. теперь мой код будет лучше
Жаль что видео больше не выходят. Лучший
Spasibo
нужно детальное видео по DI
Жду видео по Dependency Injection Кэп
запили пжл, про DI
Сделайте пожалуйста видео на тему C# AutoResetEvent и ManualResetEvent на примере кнопок WinForms. В сети нет таких примеров
👍
Отличное видео, жаль что продолжений нет.
Сделай видео по asp net , mvc . пожалуйста!!!!!! Очень хороший качественный контет
А что получаться то, в Singleton можно при каждом обращении делать set нового guid)
Данный материал подходит для ASP.NET Core (Net 6) или есть между ними критические отличия?
Спасибо за ролик.
Вся информация в ролике самая свежая 🙂 Живой пример как раз на .NET 6.
@@codaza-channel спасибо :)
Два вопроса:
1 дотнет для каждого http запроса создаёт новый transient контроллер?
2 почему в контроллер было внедрение в конструктор а не в метод с использованием атрибута FromServices? Какие зависимости в класс контроллера лучше внедрять в конструктор, а какие в метод?
1. Да, по умолчанию в ASP.NET создаётся контроллер на запрос с временем жизни transient.
2. Внедрение через метод следует использовать, когда потребитель внедренной зависимости меняется при каждом вызове или, когда внедряемая зависимость меняется при каждом обращении к потребителю.
@@codaza-channel извини, второе не понятно. Если есть возможность дай пожалуйста ссылку на источник, в котором бы это объяснялось.. А может быть это инфоповод для нового видео... ;)
@@leonid_konoplin Конечно, вот отличная книга где хорошо объясняются принципы внедрения зависимостей: Внедрение зависимостей на платформе .NET. 2-е издание | Симан Марк, ван Дерсен Стивен
в DI кстати необязательно передавтаь интерфейс(асбтракцию), можно только реализацию.
Можно 🙂
Допустим есть два сервиса в контейнере: один синглтон, другой пусть будет скопед. Синглтон внутри использует второй сервис. Каковым будет поведение синглтона, учитывая что у зависимости жизнь коротка? Все будет работать, но просто логика нарушится?
Спасибо за отличный вопрос. Хорошая новость, что так сделать нельзя. Если Вы всё же попытаетесь это сделать, то при попытке запуска вашего приложения, Вы получите ошибку о том, что Scoped-сервис не может быть инжектирован в Singleton-сервис.
@@codaza-channel спасибо!
+1
Боооольше asp
Че то как будто нарушение солид практик заметил я в видео….
Чел, ты нас усыпить хочешь или донести что-то. Тебя невозможно смотреть на скорости ниже 1.5. Экономь чужое время, братан. Сам контент хороший, тут лайк.
Объяснение хорошее, но тембр речи и фоновая музыка не иллюзорно намекают, что главная цель усыпить зрителя.
у вас немного не правильное объяснение жизненных циклов. Синглтон не может вызывать сервисы с более коротким жизненным циклом - скопд и транзиент. Скопд в свою очередь не может вызывать транзиент. Причём при попытке сделать это можно словить эксепшн указывающий именно на эту ошибку.
с другой стороны, в обратном направлении это работает нормально.