Подписывайтесь на канал, включайте колокольчик и поддержите развитие канала своим лайком. Это действительно важно для меня. Включайте оповещения о новых видео и прямых трансляциях прямо в личные сообщения ВКонтакте. Самый удобный способ не пропустить ни одного видео - подпишись на рассылку bit.ly/subscribe_codeblog 00:00 - Интерфейсы C# на практике 00:32 - Подписывайтесь на CODE BLOG 01:25 - Что такое интерфейс C#? 01:51 - Где применяются интерфейсы C#? 02:34 - Проектирование приложений 06:30 - Работа в команде 08:44 - Разделение приложения на слои 13:29 - Онлай курс C# ASP.NET Core разработчик 15:32 - Полиморфизм C# и реализация полиморфной связи 21:03 - Использование DI-контейнера C# 27:50 - Mock-тестирование C# 31:36 - Практика работы с интерфейсами C# А для общения заходите в наши чаты: Общий чат в телеграм: bit.ly/tg_chat_codeblog Чат по C# в телеграм: bit.ly/csharp_chat Чат в дискорд: discord.gg/EV2WdyP
@topProgrammer3 жыл бұрын
Привет, я понимаю что загруженность на работе не деат подготовить материал к следующему стриму, но можно же делать разговорные стримы раз в неделю, хотябы по часу. В стиле вопрос-ответ.
@Денис-в5д5ь4 жыл бұрын
Супер, что вернулся на ютуб! Спасибо, Вадим!
@imaynedlog96284 жыл бұрын
Качество всё растет и растет. Благодарю.
@ВасилийКукушкин-х4ъ3 жыл бұрын
Отличный материал, спасибо! Хочется увидеть так же кратко, но ёмко, с примерами, про делегаты. Как передавать сообщения между независимымы (не связанными) объектами.
@lehayoureaseparatist7334 жыл бұрын
Наконец-то вернулся Вадим! Наконец-тоооо !!!!!
@OlegMongol186753 жыл бұрын
Спасибо за видео. Очень рад, что ты вернулся!
@vladisslavss2 жыл бұрын
Лукас и коммент в поддержку канала! Спасибо за труд!
@viruslab13 жыл бұрын
спс за труд
@василийпузырев-к1ш3 жыл бұрын
Стоило только подумать "а хорошо бы обучалку от Вадима не в форме вебинара, а заранее подготовленной и смонтированной лекции" - и вот оно! Все четко, ясно и без отвлекающих сообщений в чате. Ещё показалось, что улучшилась дикция и голос чётче стал) Спасибо огромное!
@cornet00724 жыл бұрын
Спасибо!
@OlegMongol186753 жыл бұрын
Стану крутым прогером - обязательно задоначу. Аллилуйя! Весь день потратил на поиск информации по DI контейнерам и вот она, тут. Так просто и понятно...У меня нет слов. подписка, колокол - всё, что пока могу. Спасибо!!!
@CODEBLOG3 жыл бұрын
Очень рад, что смог помочь :) донатить даже не обязательно, просто смотри видео сам и рекомендуй друзьям :)
@Ternopil_Goul2 жыл бұрын
Как ваши успехи? Уже стали программистом?)
@rdragon5873 жыл бұрын
Cool) thanks
@mastervolodsobeck5176 Жыл бұрын
300 лет тебе жизни, лайк в зачетку ютуба ;)
@yerrrss3 жыл бұрын
Он возвращается👍
@codemystery3 жыл бұрын
книга хорошая, стоит всегда за мной, когда видео записываю) вместе с паттернами проектирования
@andreykondrakov94173 жыл бұрын
Добрый день! не совсем понятно, как была выполнена команда "Add-Migration" для этого класса? public class CheckEntity : ICheck { public int Id { get; set; } public string ShopName { get; set; } public string BookName { get; set; } public IShop Shop { get; set; } public IBook Book { get; set; } public DateTime DateTime { get; set; } В нем ведь используется интерфейс в качестве типа для Shop и Book. Я, как понял, EF не может создать поля таблицы (создать связи) если в качестве типа указан интерфейс.
@АлексейМелентьев-ч3в3 жыл бұрын
Вадим, ещё бы практики, как фитнес приложение и crm и желательно с интерфейсом, но не обязательно, консольный тоже подойдёт. Уроки отличные, спасибо!
@АлексейМелентьев-ч3в3 жыл бұрын
DI сложна в понимании новичку, я когда писал (переписывал) фитнес приложение, на последних уроказ уже спал, потому что не вывез DI, может если бы кода было меньше, а так сделал своё приложение, но без интерфейсов. Добавить интерфейсы не проблема, но они просто будут,а вот di я не понял, пока что
@SHILY-PROJECT4 жыл бұрын
Ля, шо это за красавчик?! Формат зашёл)) Спасибо за контент:3
@lord83603 жыл бұрын
Ого, как изменился)
@proit66233 жыл бұрын
После урока advanced интерфейсы, тут возникло много вопросов :DDD
@ITHomester4 жыл бұрын
Спасибо за полезный контент, узнал кое-что новое для себя)
@savrsandzhiev6412 жыл бұрын
Классное худи
@Aquarius-n1d4 жыл бұрын
Спасибо за видео!! А вот тут Вы упомянули такое дело как паттерны, возможно рассмотрение в будущем такого дела как Определение паттерна MVVM? Спасибо!!!
@semen0834 жыл бұрын
Этот паттерн уже ушел в историю, как и wpf.
@CODEBLOG4 жыл бұрын
Ты не представляешь, как много еще приложений с wpf нужно поддерживать. Даже мой проект на работе использует wpf. так что рано ты его еще со счетов списал
@CODEBLOG4 жыл бұрын
Да, обязательно буду его рассматривать
@velfex4 жыл бұрын
Вот за такие короткие видео отдельное спасибо.
@samuro2ua3 жыл бұрын
Этому видео точно место в плейлисте CLR via C#?
@imaynedlog96283 жыл бұрын
Как бы провернуть это все на ef core? Проблема с интерфейсами у меня>_
@dobryijuk79973 жыл бұрын
почему в IShop/Shop GetAllBooks объявлено как IEnumerable а не как List?
@CODEBLOG3 жыл бұрын
При желании совершенно спокойно можно использовать list. тут вопрос универсальности и безопасности. Во-первых, если возвращать список, то элементы коллекции можно будет поменять за пределами класса. иногда это не желательно. Во-вторых, в ienumerable при желании можно поместить любую коллекцию, не только список
@DmitryDolganov4 жыл бұрын
Благодарю! И с возвращением тебя, Вадим!!!
@ВикторЛатышев-з3х4 жыл бұрын
Спасибо тебе за твою работу Вадим) кстати мне кажется или похудел, в общем тебе идёт)
@almightiey3 жыл бұрын
yoooooooooooooooooooooooooooooooooo, скучали по тебе
@vlmax63874 жыл бұрын
Здравствуйте. Подскажите пожалуйста. Мне нужно изучить JS. С чего мне лучше начинать? С C#, HTML? Просто не хочу запутаться.
@darman58203 жыл бұрын
Начинай с HTML и иди к JS. Сколько тебе лет?
@vlmax63873 жыл бұрын
@@darman5820 здравствуйте. Мне 37
@vlmax63873 жыл бұрын
@@darman5820 я извиняюсь, а это имеет большое значение?
@darman58203 жыл бұрын
@@vlmax6387 это огромное значение имеет. Что бы там не говорили, мол возраст не имеет значения, это не так. Тут много нюансов - способность к обучению, стрессоустойчивость, компьютерная грамотность, возрастной ценз от работодателя
@vlmax63873 жыл бұрын
@@darman5820 в моём случае, мне это интересно и для достижения цели практически необходимо. И да, это не для работодателя, а для меня. И хочу чтобы сын начал изучать. Вот только думаю в 7 лет не рановато?
@elonmusk92543 жыл бұрын
Вадим будете возобновлять видео по искусственному интеллекту?
@CODEBLOG3 жыл бұрын
Да, но точно не в ближайшее время
@EasyCodingProgar4 жыл бұрын
Единственный канал , который действительно правильно и понятно обучает c#!
@Ivan601793 жыл бұрын
Как добавить связь между проэктами о которой говорит Вадим на 09:57
@Ivan601793 жыл бұрын
Уже разобрался
@CODEBLOG3 жыл бұрын
В обозревателе решений в проекте в который ты хочешь добавить связь правой кнопкой мышки на references (не уверен, как это называют в русской версии visual studio, может быть ссылки или зависимости), выбираешь добавить ссылку, в открывшемся окне слева будет добавить ссылку на проект, ставишь галочку напротив проекта на который ты хочешь сделать ссылку
@vyacheslav78384 жыл бұрын
Я всего лишь Морти, а Вадим мой Рик. Лайк за Рика и Морти
@olegs6834 жыл бұрын
Как часто используется следующее решение, и нужно ли оно вообще? Вместо реализации классом интерфейсов - унаследоваться от абстрактного класса, который реализует эти же интерфейсы
@CODEBLOG3 жыл бұрын
Да, такое бывает, и я даже в конце видео как раз говорил про этот подход
@Rb-ur5em3 жыл бұрын
Добрый день. Подскажите можно ли найти что-то подобное в принципе? Как лучше поступить ? Писать игру с нуля не получится точно! Простая карточная игра (качество и сложность не важно. лучше что-то по проще..) HTML, CSS, JS, MySQL Описание: Регистрация игрока, Минимум два участника Спасибо
@сашасоколов-б1р3 жыл бұрын
очень жаль конечно что новые видео не выходят....
@fedorpinega25074 жыл бұрын
Скажите, верно я понимаю, что у вас между слоями (в случае этого видео - слой бизнес-логики и слой пользовательских представлений) находятся интерфейсы ? Ну, те которые IBook, Ishop и т.д.? Это принципиальный подход или частный случай?
@CODEBLOG4 жыл бұрын
Зависит от конкретного случая, но в целом связывать слои через интерфейсы - хорошая практика
@lijes1083 жыл бұрын
+коммент для продвижения видоса
@CYBERTeamOnlineSportTV4 жыл бұрын
Вадим, красава лучший)))
@elliotalderson55393 жыл бұрын
С бородой хорошо
@markfull2073 жыл бұрын
Вадим, когда ASP.NET Core?
@CODEBLOG3 жыл бұрын
Следующим курсом после clr via c#
@markfull2073 жыл бұрын
@@CODEBLOG сколько год примерно нужно ждать?
@codemystery3 жыл бұрын
@@markfull207 го учить по метаниту, вероятно это будет быстрее и надеятся не нужно ни на кого
@markfull2073 жыл бұрын
@@codemystery я его уже +- знаю (ел. дневник вот пишу, и потом интернет-магазин буду после него писать), но я его не идеально знаю, к сожалению.
@denisadimov77094 жыл бұрын
В этом видео нашел ответ на вопрос который давно мучал. Начитался "практик" в интернете и чувствовал, что "что-то не так" в моих решениях. Спасибо за объяснение!
@dimka59ru4 жыл бұрын
Спасибо! Было бы лучше если код писался по ходу, а не показывался скринами уже готовый.
@dobryijuk79974 жыл бұрын
тогда видео было бы на полтора часа. формат отличный, всё по сути. все исходники есть тем более в открытом доступе.
@CODEBLOG4 жыл бұрын
Да, тут я стараюсь делать компромисс, на стримах я пишу код в живую, для тех кому интересно наблюдать за процессом, а в видео для краткости просто демонстрирую готовый результат.
@egors.26374 жыл бұрын
это просто шикк, на самом деле проще к пониманию, чем записи стримов
@vofkaiy39634 жыл бұрын
Все кулл, но я бы немного другими словами рассказал. Книга - как Книгу отличить издалека от Рыбы, Ручки, Парты, Неба и других физ. объектов? Именно - тем, что книга имеет свои физические свойства отличные от других. И так Книга - мы все знаем и даже издалека различим, что перед нами книга или нет. Это первый объект ( или первая модель оптимизации БД), в каждой книге имеется условные обозначения ( Автор, название, Сюжет, Жанр и так далее), это не физическая структура книги, но как раз ради чего мы идем покупать ее ( это вторая модель оптимизации БД)... У каждого физ. объекта, есть ссылки на структуру этого объекта. Дальше у нас есть физический объект Шоп (магазин) ( Первая Модель оптимизации БД), у Магазина есть Адрес (Название, Город, Улица и т.д.) ( вторая оптимизация БД), кроме этого наличие Книг их заказ, стоимость и другие условия получения Книг. ( третья оптимизация БД). Кроме этого Магазин не создает Книги, значит Контейнер ( как фильмах ) с книгами - это отдельное помещение, магазин просто ссылается на них. Воть.... В итоге описание Автора на 5+, так как я разбираюсь на уровне Юниор с БД, но не понятно для начинающих. Поймите, все что мы привыкли делать Автоматически и не задумываемся в БД - это процесс постепенный. Сделал Шаг - описал все способы как ты его сделал... Чтобы понять БД на обычном способе - это способ понять себя. При разговоре Вы делаете жест рукой - попробуйте подробно описать, причины этого жеста. Кажется все просто, но когда начнешь разбирать ты попадешь под водоворот непонимания самого себя... БД- это очень простое понятие всего сущного... Научитесь воспринимать его, Автор ролика очень ценит Вас. А я комментирую, мне можно я нет никто ))
@CODEBLOG4 жыл бұрын
Спасибо, хорошее объяснение :)
@GreekkAlex3 жыл бұрын
подписался, колокол включил, а новых видосов нет!(((
@vofkaiy39634 жыл бұрын
( я дополняю, а не противоречу словам). Книга - физ. объект. ( из дерева, камня, круглая, квадратная - это класс объекта - физическая составляющая). Могу путать, поэтому прошу поругать, если в чем-то не прав
@CODEBLOG4 жыл бұрын
В принципе верно, но не всегда класс - это физический объект. Это также может быть и абстрактное понятие, например, в какой-нибудь игре вполне может существовать класс Здоровье, или Удача. По сути, для этого применяется 4-ая парадигма ООП - абстракция. На основе объекта реального мира или явления мы создаем его модель с важными для нашей предметной области характеристиками и действиями
@essanger78184 жыл бұрын
Большое спасибо! Можно еще такой-же урок про делегаты, просто трудно их понимать
@CODEBLOG4 жыл бұрын
Хорошая идея ) спасибо
@collapseshow7349 Жыл бұрын
Все наверно круто, но крайне сложно к пониманию обычному, менее развитому обучающемуся языку. Это бы в формате долгого видео с написанием каждой строки и объяснением - цены бы не было такому решению. Пример написания цельного и рабочего приложения в медленном формате - то, что очень ищу
@ilyashigera88784 жыл бұрын
оооооооочень рад возражению. приятно видеть визуальные изменения - фон, сам Вадим... хотя непривычно смотреть такой видос в плане подачи, после стримов, как будто наигранно.)
@baxtiyorshukurjanov33704 жыл бұрын
Спасибо за контент
@kerliaa3 жыл бұрын
Насколько актуален твой курс по изучению c# с 0?
@CODEBLOG3 жыл бұрын
Актуален, тут рассмотрены основы языка, они не меняются
@gameviewer56934 жыл бұрын
Спасибо за видео,видимо информация для более шарющих и уже понимающих интерфейсф. К сожалению как не понимал зачем они нужны, когда есть абстрактные классы, так и не понял, выглядит как абстрактный класс на минималках. Буду копать дальше...
@lesharper87514 жыл бұрын
В абстрактные классы ты можешь записать как абстрактные поля, так и нет, что может вызвать путанницу. Да и к тому же, более чем от одного класса нельзя наследоваться. Интерфейсы же содержат ТОЛЬКО абстрактные поля и ты можешь реализовать в общем классе столько интерфейсов, сколько твоей душеньке удобно
@JeffeekChannel4 жыл бұрын
Скорее абстрактный класс на максималках. Ибо в интерфейсах не может быть реализации (сейчас может, но это не канон + не то, что должно быть по сути), а только члены для реализации => более абстрактно чем класс.
@CODEBLOG4 жыл бұрын
А ты смотрел предыдущий стрим про интерфейсы C#? Он долгий (3 часа) но в конце есть как раз сравнение интерфейсов и абстрактных классов. Если лень смотреть, то в статье в моем блоге есть конспект этого стрима shwanoff.ru/interface-2/ листай в низ до подзаголовка "Базовый класс или интерфейс C#?" и прочитай там. Я как раз все там разобрал
@gameviewer56934 жыл бұрын
@@CODEBLOG Пока нет, обязательно гляну
@shkurmander3 жыл бұрын
Запомни главное различие, абстрактный класс позволяет описать характеристики родственных объектов, например, абс. класс Средство передвижения от него наследниками будут автомобиль, мотоцикл, самолёт и т.д. все их ты можешь унаследовать от абстрактного класса Vehicle, в котором будет метод Move(), задающий правила перемещения объекта. Но идём дальше, у тебя появляются такие объекты, как человек, кошка, лошадь, планета, звуковая волна, которые тоже умеют перемещаться, но ты же не можешь сказать, что они средства передвижения, и унаследовать их от класса Vehicle, а вот создать интерфейс IMovable в котором будет метод Move() - ЯПеремещаемый и во всех объектах отреализовать его ты можешь.Т.е. интерфейс позволяет пробросить одни и те же методы(поведение) в классы не связанные друг с другом. И если в итерфейс IMovable ты решишь добавить методы повернуть направо и повернуть налево, то во всех не связанных одной иерархией классах, которые реализуют этот интерфейс, появятся эти методы, а конкретную реализацию, как поворачивать налево и направо ты пропишешь уже для каждого класса отдельно. А также с помощью интерфейсов можно реализовать множественное наследование,. Т.е. интерфейсов класс может реализовать множество, а вот унаследоваться от класса только один раз. Надеюсь понятно объяснил :)
@vladimirskachkov59853 жыл бұрын
Много человека в кадре и быстро мельтешащий код, а тема да - интересная
@nickvaler_4 жыл бұрын
Вадим реализовал IBald интерфейс
@ЯГречка4 жыл бұрын
как же давно тебя не видел, Hello world(Vadim)!
@iamfebo62904 жыл бұрын
ты похудел?)
@CODEBLOG4 жыл бұрын
немного, нужно еще :)
@TheSlayerCult4 жыл бұрын
Похудел никак? С возвращением. Надо нагонять пропущенное.
@CODEBLOG4 жыл бұрын
да, немного скинул в весе, но нужно еще :)
@ВалераБереснев-т6й4 жыл бұрын
Вадим, отлично выглядишь, в зал начал ходить? :)
@CODEBLOG4 жыл бұрын
Я бы с удовольствием, но в Чехии все вообще закрыто из-за пандемии. Поэтому просто хожу в парк 2 раза в день на пол часа + зарядка с утра. Как только появится возможность - пойду в зал и бассейн :)
@crist2000a4 жыл бұрын
больше кода, меньше текста...
@codemystery3 жыл бұрын
Книга не сделает из Вас программиста, насколько хоорша она не была. Без практики знания скоро забудутся
@vofkaiy39634 жыл бұрын
Тебя кроме самого себя, понял кто либо про понятие Интерфейс? Даже по анг. Интер - между Файс - лицо. С учетом моих хреновых познаний Англ. Я простыми словами поясню, Интерфейс это агрегатное состоянии между Водой и Льдом, между Водой и Паром и так же между Паром и Льдом... Интерфейс - это лицо программы, которая взаимодействует между Объектами. Мое определение более удобнее, чем Ваше?
@CODEBLOG4 жыл бұрын
У меня предыдущее видео про интерфейсы как раз все это объясняло, я специально не стал здесь повторяться, а дал только короткое формальное определение. Подразумевается, что человек уже знаком и понятием интерфейса, и хочет лучше понять как их применять на практике
@maksk50174 жыл бұрын
Так вот кто у Немчинского бороду украл!!! Бей его!!
@СергійІванович-ы5щ4 жыл бұрын
Васьок, привет ))) Посмотри пожалуйста какие уроки у SimpleCode. Будешь знать как нормально преподавать, без воды мямли и потери времени.. четко и по факту))
@1pampers13aby74 жыл бұрын
я лично смотрю на скорости 1.5 и... И норм
@nawakoff25814 жыл бұрын
Нормально он преподаёт, просто не каждый может в прямом эфире идеально сосредотачиваться, чтобы без чёткого сценария на бумажке и инфу донести, и успеть по времени, и на вопросы ответить.
@iraklidavitaia4 жыл бұрын
А может тебе просто пойти куда подальше?
@vasilboldakoff4 жыл бұрын
Симпл код это самый нудный чел в rutube, там мало того, что надо понять тему, так ещё и постараться не заснуть, а Вадим один из лучших преподавателей на русскоязычном ютубе
@СергійІванович-ы5щ4 жыл бұрын
@@iraklidavitaia понюхай
@pavelgelver74204 жыл бұрын
"нАгет"? Серьёзно? 😕
@CODEBLOG4 жыл бұрын
да, согласен, не правильное произношение, но от дурной привычки трудно отделаться... мы с друзьями его так в шутку звали и теперь прилипло...