- Видео 52
- Просмотров 31 874
Просто программист
Россия
Добавлен 11 июл 2009
Я бэкенд разработчик .NET. Делюсь с коллегами своими знаниям и выкладываю записи этих семинаров в этот канал.
Entity Framework Core (Блок 1)
- введение
- первое приложение с использованием EF Core
- моделирование БД
- операции чтения
- операции изменения
репозиторий с исходными кодами: github.com/RadmirT/EFCore
обучающий материал по SQL: www.w3schools.com/sql/sql_intro.asp
список поддерживаемых БД: docs.microsoft.com/en-us/ef/core/providers
- первое приложение с использованием EF Core
- моделирование БД
- операции чтения
- операции изменения
репозиторий с исходными кодами: github.com/RadmirT/EFCore
обучающий материал по SQL: www.w3schools.com/sql/sql_intro.asp
список поддерживаемых БД: docs.microsoft.com/en-us/ef/core/providers
Просмотров: 195
Видео
#1 ManageApp
Просмотров 63019 часов назад
Форма для отправки кода на ревью docs.google.com/forms/d/e/1FAIpQLSexMYOIBTFgsNtTSN5R_lYapmYWVwdRnCTWR5RTj4GX4mBKeA/viewform
Асинхронное программирование на C# (Блок 10)
Просмотров 23321 день назад
Язык параллельных запростов PLINQ Статья Speedup in PLINQ: learn.microsoft.com/en-us/dotnet/standard/parallel-programming/understanding-speedup-in-plinq Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 6)
Просмотров 1342 месяца назад
-Внутреннее устройство коллекции ConcurrentDictionary Исходный код коллекции ConcurrentDictionary: github.com/dotnet/runtime/blob/main/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 5)
Просмотров 1782 месяца назад
Потокобезопасная коллекция ConcurrentDictionary Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 4)
Просмотров 2163 месяца назад
- параллельная работа с потокобезопасными коллекциями Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 3)
Просмотров 6054 месяца назад
- класс Parallel Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 2)
Просмотров 2715 месяцев назад
- шаблон Produces-Consumer - интерфейс IProducerConsumerCollection - класс BlockingCollection Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 9 часть 1)
Просмотров 3316 месяцев назад
Потокобезопасные коллекции -ConcurrentQueue -ConcurrentStack -ConcurrentBag Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 8 часть 5)
Просмотров 1726 месяцев назад
- прогресс асинхронных операций статья "Do I need to dispose of Tasks? "devblogs.microsoft.com/pfxteam/do-i-need-to-dispose-of-tasks/ Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 8 часть 4)
Просмотров 2017 месяцев назад
-скоординированная отмена в продолжениях -блокировки Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 8 часть 3)
Просмотров 2347 месяцев назад
- скоординированная отмена Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 8 часть 2)
Просмотров 2538 месяцев назад
- обработка исключений Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 8 часть 1)
Просмотров 2989 месяцев назад
- обработка исключений Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 7 часть 4)
Просмотров 2619 месяцев назад
- Асинхронные метода для рабаты с async await - Ограничения использования async await Репозиторий с исходными кодами примеров: github.com/RadmirT/AsyncProgramming
Асинхронное программирование на C# (Блок 7 часть 3)
Просмотров 39610 месяцев назад
Асинхронное программирование на C# (Блок 7 часть 3)
Асинхронное программирование на C# (Блок 7 часть 2)
Просмотров 37211 месяцев назад
Асинхронное программирование на C# (Блок 7 часть 2)
Асинхронное программирование на C# (Блок 7 часть 1)
Просмотров 347Год назад
Асинхронное программирование на C# (Блок 7 часть 1)
Асинхронное программирование на C# (Блок 6 часть 5)
Просмотров 247Год назад
Асинхронное программирование на C# (Блок 6 часть 5)
Асинхронное программирование на C# (Блок 6 часть 4)
Просмотров 368Год назад
Асинхронное программирование на C# (Блок 6 часть 4)
Асинхронное программирование на C# (Блок 6 часть 3)
Просмотров 335Год назад
Асинхронное программирование на C# (Блок 6 часть 3)
Асинхронное программирование на C# (Блок 6 часть 2)
Просмотров 347Год назад
Асинхронное программирование на C# (Блок 6 часть 2)
Асинхронное программирование на C# (Блок 6 часть 1)
Просмотров 448Год назад
Асинхронное программирование на C# (Блок 6 часть 1)
Асинхронное программирование на C# (Блок 5 часть 4)
Просмотров 400Год назад
Асинхронное программирование на C# (Блок 5 часть 4)
Асинхронное программирование на C# (блок 5 часть 3)
Просмотров 431Год назад
Асинхронное программирование на C# (блок 5 часть 3)
Асинхронное программирование на C# (блок 5 часть 2)
Просмотров 579Год назад
Асинхронное программирование на C# (блок 5 часть 2)
Асинхронное программирование на C# (блок 5 часть 1)
Просмотров 938Год назад
Асинхронное программирование на C# (блок 5 часть 1)
Асинхронное программирование на C# (блок 4)
Просмотров 697Год назад
Асинхронное программирование на C# (блок 4)
Асинхронное программирование на C# (блок 3)
Просмотров 1,1 тыс.Год назад
Асинхронное программирование на C# (блок 3)
Отличный доклад, ждём продолжения.
Спасибо за курс! Вы крутой
Спасибо за урок
Спасибо за урок
В конце немного не понятно почему лучше использовать блокирущий вызов Parallel в ранних версиях чем оборачивать его в таску ради асихронщины?
Потому что асинхронное выполнение этих методов не дает никакого приимущества, кроме дополнительного оверхеда. Parallel будет все выпольнять во вторичных потока и как правило "захватит" все доступные ядра,а Task.Run просто захватит еще один поток из пула, и тут же его "заморозит". Единственное когда, вам оборачивание Parrallel в задачу может помочь, это если вам нельзя блокировать вызывающий поток.
Урааа новый курс от Radmira! Спасибо
Но, почему нету возможности "розблокировать" буфер посля CompleteAdding(), как то не удобно (
@@olegjordan7527 потому что тогда консюмеры не смогу точно быть уверены что все данные были прочитаны.
Спасибо! Очень крутой контент
Интересно) Спасибо! На сколько большой проект можно прислать?)
Ну конечно очень большой проект я не смогу целиком отрецензировать, но выделить какие-нибудь важные или интересные детали вполне смогу. Так что присылайте, посмотрю :)
наконец-то, я нашёл тебя !!
Можна пожалуйста вы проведёте урок по самописной потокобезопасной коллекции или что нибуть такого просто очень интересно как работает подобное под капотом!
@@olegjordan7527 в одном из последующих уроков я рассказываю как работает под капотом ConcurrentDictionary
Спасибо большое, аж 'слюнки текут', когда видишь такие шикарные курсы.
Что-то у вас курс лекций долгий))) я уже успел две работы поменять
так будет ли курс по ef? 2:55
@@lambda4591 да, в течении месяца выйдет первый урок.
огромнейшее спасибо!
Шедевр
благодарность
Лекция зачот😊 Пасиба автору!
спасибо!
А в какие моменты MoveNext() начинает переключатся? Как понимаю вызов его не явный
Да, метод MoveNext() вызывается неявно при каждом "шаге" автомата.
35:50 миграция удалилась, но поле в бд осталось?
Да там косяк на виде. Не та база была открыта :)
Спасибо, отличный курс!
Спасибо большое за курс лекций. Мне кажется, что после него я действительно стал немного понимать асинхронность в .net. Где-то видел мнение, что потокобезопасные коллекции - это некое смешение синхронного и асинхронного кода. Частичная им замена - каналы. При возможности сделайте, пожалуйста, лекцию на эту тему.
Долго пытался понять почему во 2 способе потребовалось создать продолжение задачи. Вроде как можно написать сразу tasks.Wait() без await и без продолжения и получить результат. Но потом сообразил, что wait заблокирует поток.
Да именно так. Если мы сразу поставим Wait() то вызываюший поток будет заблокирован и от await не будет смысла. А в случае с продолжением мы высвобождаем вызывающий поток. А когда вызывается Wait ничего блокироваться не будет, т.к. в этом момент задача будет гарантированно завершена, и обязанность Wait просто бросить исключения если они возникли.
Классные видео, спасибо! А в корпоративном университете лежит где-нибудь?)
Спасибо! Примерно до 7 блока должны где-то быть, по крайней мере я отдавал их куратору, последних нет, т.к. я сейчас работаю в другом месте.
Спасибо!
почему так много ааа и эээ
Ну так получилось. Вообще изначально не планировалось это где-то публиковать, запись велась исключительн "для отчета", а сами уроки поводилсь без подробного сценария, т.к. это были "черновые" прогоны. Чуть позже уже будут нормальные ролики.
Очень доходчиво и понятно объясняете, спасибо за такой контент!
Братишка, ты реально крут.
спс
а вот это не тоже самое, но проще и удобнее? public async Task MetodForPrimer() { бла бла бла; } и использование: await MetodForPrimer().ConfigureAwait(false); я если что новичек
Про async await будет чуть позже. И async await это не всегда про многопоточность. А ConfigureAwait это вообще из другой оперы, он связан с контекстом синхронизации, применять его надо далеко не всегда. Обо всем этом я рассказываю в последующих блоках.
Открыл для себя ваш канал. Отличный материал. Пожалуйста, продолжайте.
Спасибо. Офигенны курс
СПАСИБО БОЛЬШОЕ, БЛАГОДАРЯ ВАШИМ ГАЙДАМ Я НАКОНЕЦТО СМОГ ВЗЛОМАТЬ СБЕРБАНК!!!
Спасибо за ролики. Будут ли еще уроки?
Обязательно. :) В ближайшее дни выйдет новый ролик.
Отличный лекция как и остальные, большое вам спасибо!
Нашла канал только сегодня. Это находка! Автор, продолжайте выкладывать ролики, очень хорошо объясняете 💖 Благодарю
Огромный рост по сравнению с первыми ролилками. Раньше было очень тяжело слушать. Сейчас совсем другое дело. Спасибо за материал.
Правильно ли я понял, что если ты работаешь с asp. Net core на новых версиях, то про контекст синхронизации не нужно знать?
Да, верно.
ruclips.net/video/jDaGi_ZnGjI/видео.html А каким образом пул потоков препятствует частой смене контекста, когда как он решает проблему затратности создания потока
Имеется ввиду, что при большом количестве одновременно работающих потоков время на приключение контекста может "уничтожить" весь профит параллельности. Если же мы с помощью пула ограничим количество одновременно работающих потоков, то тем самым можем увеличить суммарную производительность. Простой пример если у вас будете 10 рабочих и им надо будет выкопать 100 ям, то они это сделают быстрее если каждый работник будет только 1 яму а как выкопает перейдет к другой, чем начать копать сразу 100 и перебегать от одной ямы к другой каждые 10 минут.
Просто вызов асинхронных версий методов (ReadAsync) недостаточно, чтобы работа была асинхронной? Нужно обязательно в конструктор передавать параметр? Это актуально для net 8.0?
Если вы не укажите флаг FileOption.Asynchronous, то ReadAsync будет работать как обычная CPU-задача нагружая процессор, т.е. использования именно задач ввода-вывода не будет.
@@RadmirT Получается лучше всегда ходить при чтение/запись на диск асинхронно, кажется такое поведение наоборот должно быть по умолчанию. А для специфических кейсов уже ставить опцию синхронно. Думаю большенство разработчиков не знают этой фишки)
@@RadmirT или тут есть какие-то подводные камни?
Да, в 99.99% случаев если вы хотите читать файл асинхронно, надо ставить эту опцию. Тут проблема в том, что при создании FileStream никто кроме программиста не знает, как будут читаться данные, синхронно или асинхронно. А читать в синхронном режиме с этим флагом не самая лучшая идея.
Это всех ОС касается? Или только виндовс так работает?
Да, во всех ОС общего пользования (Windows, Linux, MacOS). Возможно только какие-нибудь специализированные ОС могу работать по другому.
@@RadmirT спасибо
А если у меня есть проект web-api, который общается с БД и два клиентских приложения, например, MVC и android, каждое из которых общается только с web-api и получает оттуда нужные данные. Вы говорили, что в таком случае лучше использовать аутентификацию/авторизацию в одном сервисе, то есть в web-api, который принимает логин+пароль и возвращает токен, а этот токен использовать в клиентских приложениях. А как это реализовать тогда? Identity, как я понял, должен общаться с БД, а в данной конфигурации общение с БД напрямую отсутствует, а только через web-api. Я могу вместо токена с web-api получать ответ, что пользователь прошел аутентификацию, и к примеру, его роль, а уже в MVC делать аутентификацию/авторизацию на основе ролей. Но тогда пропадают все плюшки в виде политик и прочего, которые дает Identity, и все равно возникает необходимость делать два этапа аутентификации/авторизации - в клиенте (MVC) и в web-api.
Стоит различать понятие аутентификации и авторизации. Аутентификация это процесс подтверждения личности пользователя, авторизация это предоставление прав доступа пользователя к защищенному ресурсу. Identity занимается только аутентификацией, те он проверяет что пользователь ввел верные учетные данные, и если они введены верно, то он выдает токен в котором содержатся утверждения (claims) А уже решать предоставлять ли доступ к защищённому ресурсу или нет пользователю с таким набором утверждений должен конкретный сервис, это вы делаете с помощью политик. Конкретному сервису не надо "ходить" в БД Identity всю необходимую информацию о пользователе он должен получать из токена.
@@RadmirT Спасибо!
Спасибо за отличный курс! На какой примерно уровень рассчитан материал данного курса?
Джун+, Мидл
Почему рекомендуется использовать razorPages для новых сайтов? Даже на самых простеньких почти наверняка потребуется использовать и ajax, и частичные представления, и web api, поэтому кажется разумным наоборот рекомендовать MVC, а razor - если требуется что-то предельно примитивное
Razor и MVC практически одно и тоже. Точнее Razor это один из способов реализации MVC. Единственное отличие от подхода на основе контроллеров это разграничения ответственности. RazorPage может обработать запрос только к одной странице а один контроллер может обслуживать сразу несколько страниц. Но зато у Razor более удобное на мой взгляд взаимодействие между отображением и code behind. Что использование контроллеров что Razor это все страницы генерируемые на сервере, поэтому обе технологии не очень хорошо работают ни AJAX ни с WebAPI. Для этого на много лучше подходят Angular, vue, React и наконец Blazor.
@@RadmirT понял, спасибо
Спасибо. Сложно в понимании где использовать в реале. Но интересно.
вау, спасибо Вам!
Спасибо за видео! Понятно и просто о сложном.
А можно выложить в открытый доступ методичку с заданиями?
github.com/RadmirT/ASP.NET-Core-cource
будем смотреть. асинхронность и многопоточность одни из самых актуальных тем. кусочков видео много. надеюсь увидеть что то новое.