Cleannetcode - Roman Trufanov
Cleannetcode - Roman Trufanov
  • 28
  • 117 413
Как работать с базами данных на .NET | Слой доступа к данным
В этом видео мы подробно рассмотрим основы работы с базами данных в проектах на .NET. Чаще всего для работы с БД оргазинуют отдельный слой Data Access Layer (DAL).
Определим где расположен DAL с точки зрения чистой архитектуры на C#. А также разберем паттерны Repository и Unit of Work, рассмотрим популярные библиотеки ADO.NET, EF Core и Dapper для работы с данными c помощью SQL и Linq.
Мы обсудим:
00:00:00 - Введение в Data Access Layer (DAL)
00:17:45 - Паттерн Repository / Репозиторий
00:31:40 - Паттерн Unit of Work
00:48:42 - Работа с ADO.NET c сырым SQL
01:01:48 - Работа с Entity Framework
01:22:30 - Работа с Dapper
01:31:45 - Тестирование DAL
01:37:00 - Домашка
Ссылка на оригинальный стрим: czcams.com/users/livevhNUCSUBHf4?feature=share
Файл с домашкой (открывать в excalidraw): t.me/cleannetcode/60757/81362
==================================================
У нас есть активное сообщество, которое собирается в телеграм чате и на Github для обсуждения различных тем и обмена знаниями. Хотите развиваться и быть в курсе последних трендов в разработке? Присоединяйтесь к нам!
Телеграм чат: t.me/cleannetcode
Discount: discord.gg/8H7RQKdCPd
Github: github.com/cleannetcode/Index
LinkedIn: www.linkedin.com/groups/9315319/
VK: cleannetcode
Facebook: groups/cleannetcode
==================================================
Если вам нравится контент, который мы создаем, и вы хотите поддержать нас, то можете сделать это через следующие платформы:
Donationalerts: www.donationalerts.com/r/cleannetcode
Boosty: boosty.to/cleannetcode
#Cleannetcode
zhlédnutí: 2 427

Video

Что такое миграция БД и как с ней работать
zhlédnutí 8KPřed rokem
Работа с базами данных является важным аспектом разработки программного обеспечения, и миграции БД играют ключевую роль в обеспечении гибкости и управляемости изменений. Они необходыми если мы хотим контролируемо обновлять версии схемы (таблиц) в Базе данных. В видео мы обсудим: Что такое миграции БД и для чего они нужны Какие проблемы решают миграции БД Основные способы работы с миграциями и и...
Структура ASP.NET проекта: Все, что вам нужно знать
zhlédnutí 7KPřed rokem
В этом видео мы разберем основные компоненты структуры проекта на ASP.NET. Узнаем о контроллерах, мидлвейр, моделях, сервере Kestrel, классах Startup и Program. О том как они взаимодействуют когда клиент отправляет запрос. После просмотра вы сможете лучше понять что такое aspnet, как программировать свои web api проекты и успешно работать с ними. Также не забудьте выполнить домашнее задание по ...
Структура решений dotnet проектов | Чистая архитектура
zhlédnutí 2,5KPřed rokem
Структура решений dotnet проектов | Чистая архитектура

Komentáře

  • @DarkIllusoire
    @DarkIllusoire Před 23 dny

    Never не правильно сказал, точнее запутал. Грубо говоря, await это простой вариант ContinueWith, чтобы не писать многотомные вложения колбеков - но, компилятор потом заменяет все await на ContinueWith. Но, самое интересное, что если использовать в примере воркера логгер с await, то логгер, будет в контексте таски, а с ContinueWith, вне контекста. Возможно дальше это объяснили, не досмотрел до конца

  • @xy777top
    @xy777top Před měsícem

    Спасибо Вам ОГРОМНОЕ! Без вас бы неделю мучался с этим свагером, а на Вашем видео всё стало понятно меньше, чем за 5 минут. Вижу у вас последняя активность на канале была год назад, эх, жаль( Не бросайте канал, у Вас ТАЛАНТ!!!

  • @vitasssik
    @vitasssik Před měsícem

    На чайнике как поставил , я пошел кофе приготовил )) И ты тут желаешь приятного )) Спасибо😁

  • @devospos
    @devospos Před 3 měsíci

    1:27 начало

  • @lifebase2427
    @lifebase2427 Před 4 měsíci

    "Что такое миграция БД и как с ней работать" иии ничего не сказал ....чтото вспоминал, по 4 раза повторял. И как с ней работать???? привел 2 примера ... оба плохие, тогда с чем работать??? Как быть если на продакшен сервере нет БД - только вот новую ставить? -как??? Если Есть? -надо обгрейдить просто из 3 таблиц надо в одну 1 столбец добавить? или надо таблицу добавить? Может ктото ответит что лучше миграцию писать или потом когда приспичить с сервера хардкодить руками?????

    • @Cleannetcode
      @Cleannetcode Před 4 měsíci

      Возможно ты про какие то другие миграции говоришь, я не вкурсе :) Если на сервере нет БД, но она тебе нужно, то тебе нужно установить туда подходящую СУБД и затем с помощью скриптов восоздать нужную тебе БД. Скрипты могут быть супер разными, все зависит от СУБД. На этой нарезке со стрима я показывал в подробностях как это не сложно делается для SQL-like баз с помощью dotnet ef. Не очень понял твой вопрос про то, что лучше писать руками или хардкодить. Но что точно могу сказать, что хорошо когда ты сохраняешь где нибудь файлики со скриптами для воссоздания БД. С ними будет явно проще работать, чем если их нет.

    • @lifebase2427
      @lifebase2427 Před 4 měsíci

      @@Cleannetcode хардкодить и есть писать все руками. зайти в mysqlAdmin создать таблицу заполнить столбцы, создать другую, сделать связи. И делать посредством миграции...

  • @yotoztv
    @yotoztv Před 5 měsíci

    Спасибо, стало чуть понятней. Искал чтобы понять что вообще такое миграция

  • @superdog3000
    @superdog3000 Před 5 měsíci

    Почему сервисы через DI не инжектили?

  • @MrKost4
    @MrKost4 Před 6 měsíci

    Спасибо, вы очень помогли в изучении С#. Так бы сидел и ломал голову пытаясь запустить первую программу

  • @ivanivanovich2088
    @ivanivanovich2088 Před 7 měsíci

    А можно доску с предыдущего потока посмотреть? В видео она показан на 06:13. Спасибо.

  • @sardor370
    @sardor370 Před 8 měsíci

    noBuid:true ))))

  • @shinedemons
    @shinedemons Před 8 měsíci

    Хорошие вещи рассказываешь, но напрягает что ты тембр голоса специально делаешь мягким, вежливым типа.

    • @Cleannetcode
      @Cleannetcode Před 8 měsíci

      Я стараюсь подстроиться под человека, кого менторю. Кому то нужно строго по делу, кому то нужно сказать что он дибил, а кому то нужно что вежливо и аккуратно :)

  • @qrthack
    @qrthack Před 8 měsíci

    Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, Python, люблю Computer Science. Хочу в backend, выбираю между Java, C#, Golang что посоветуете, и почему? интересно ваше мнение.

    • @Cleannetcode
      @Cleannetcode Před 8 měsíci

      Привет, а почему не рассмаотриваешь бэк на питоне?

    • @qrthack
      @qrthack Před 8 měsíci

      @@Cleannetcode Python кажется слишком игрушечным что-ли)

  • @botcser
    @botcser Před 8 měsíci

    Интересно, написал сам гавнокод и сам сидит его обсирает) А роллбек через восстановление файла БД из кода не? Что же это за сервер, который не имеет полного доступа к бд.

    • @Cleannetcode
      @Cleannetcode Před 8 měsíci

      Что же это за тон общения, неужели из-за того, что у тебя немного иной опыт работы это не дает тебе возможности использовать такой тон в общении, не :) Ну а если по делу: Запускать роллбеги и миграции в целом можно и из кода если тебе так удобно, я показываю как делаю сам и так работают мои коллеги. Хотя бывают и проекты где для миграции запускают из кода или даже пишут отдельный миграционный модуль. Но как правило скрипта с использованием ef tool хватает и это более гибкое решение, так как его очень легко расширить или вовсе заменить. Например на использование того же flyway. Сервер может иметь доступ к БД ровно с теми правами, что задумали авторы решения. В некоторых случаях, например в случаях больших систем и шаринга одной базы, права доступа жестко ограничиваются. А бывают банально у тебя команда из джунов и тебе нужно естественным образом ограничить им доступы. В общем каждой проблеме свое решение :)

    • @botcser
      @botcser Před 8 měsíci

      @@Cleannetcode Я сказал, как есть - ты написал минималистичный код по понятным причинам с некоторыми недостатками, которые же сам критикуешь, хотя ничего в принципе не мешало дописать без этих недостатков. А вот если бы ты привел полный код и уже его критиковал - тогда совсем другой разговор и сравнение было бы уместно. Джунам задача на роллбек и миграцию рили? Впринципе джунам доступ к прод базе? К серверу, модулям с доступом к прод базе? Это как дать доступ на запись к гиту без подтверждения.

    • @Cleannetcode
      @Cleannetcode Před 8 měsíci

      @@botcser а как по твоему этому учиться? :)

    • @Cleannetcode
      @Cleannetcode Před 8 měsíci

      @@botcser и я все пытаюсь понять о какой критике кода ты говоришь? Просто я в этом видео код особо и не показываю. Разве что пример того, как можно запускать миграцию из кода и упомянаю что мне этот подход не нравится, но имеет место быть. В чем проблема то? :)

  • @semensemen-uz9qg
    @semensemen-uz9qg Před 8 měsíci

    а если мне вскоде надо?

  • @mimi_zaba7034
    @mimi_zaba7034 Před 9 měsíci

    привет, там что-то поменялось и теперь такого проекта не в визуал студиа 2022 не подскажите какой создавать?

  • @techbuterbrod
    @techbuterbrod Před 9 měsíci

    Работаю на C# уже больше 4х лет и узнал много нового :) Многое просто выветривается, т.к. редко задумываешься о "кишках" во время выполнения типовых задач.

  • @eddypartey1075
    @eddypartey1075 Před 9 měsíci

    это к спецификации отсылка?

    • @Cleannetcode
      @Cleannetcode Před 9 měsíci

      К тому, что когда ты вообще не знаешь кто и как будет пользоваться твоим бэком :)

  • @Cleannetcode
    @Cleannetcode Před 9 měsíci

    Тут можно найти тест про http :) forms.gle/HqxDvohADSMjFRXi7 Если хочется обсудить какой то вопрос в тесте, пишите в ответ на этот комментарий :)

  • @eddypartey1075
    @eddypartey1075 Před 10 měsíci

    классное видео😁

  • @maximo7561
    @maximo7561 Před 10 měsíci

    Просто вау! Все посмотреть еще не успел, но темы таймлайнов очень крутые, как раз то, что так долго искал! Спасибо за контент :)

  • @user-uj8om6ee1f
    @user-uj8om6ee1f Před 10 měsíci

    Это ты я Алишер бота

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t Před 10 měsíci

    Было бы хорошо разместить эти полезные ссылки в описании видео

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t Před 10 měsíci

    Добрый день! В этом плейлисте будут еще видео или всю информацию, которую планировали нам дать, уже выложили сюда?

  • @devcat0
    @devcat0 Před rokem

    Эти видео подойдут для новичка который знает уже синтаксис, ООП, чуть-чуть паттерны?

    • @Cleannetcode
      @Cleannetcode Před rokem

      сложно сказать :) как минимум они могут оказаться полезным, потому что порой мы не знает чего мы не знаем. Хотя по опыту скажу, что озвученное на записи этого стрима будет хорошо понятно только тому кто делал хотя бы какие нибудь проекты.

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p Před rokem

    А где продолжение банкета?? мы категорически негодуем

    • @Cleannetcode
      @Cleannetcode Před rokem

      пичалька :( Пока слегка в работе на фулл тайм с переработками. Очень потихоньку делаю курс по микросервисам и скучаю по стримам.

    • @user-yo7mw6oj4p
      @user-yo7mw6oj4p Před rokem

      ​@@Cleannetcode Ждём с большим нетерпением возращения на большую сцену на ютубе Когда конечно время позволит.

  • @andrexxelles
    @andrexxelles Před rokem

    Спасибо большое за ваш титанический труд, ваш курс - бесценен !

  • @wlaidemar
    @wlaidemar Před rokem

    Большое спасибо, очень полезно !

  • @konstantinpodgaets2313

    можно ли сказать что Интерфейс это разновидность атрибута для класса в целом, т.к. обязывает реализовать набор свойств, полей и методов

  • @konstantinpodgaets2313

    вопрос знатокам. в файле Program.cs все начинается с создания экземпляра класса WebApllicationBuilder. для этого мы используем метод CreateBuilder паблик класса WebApplication (разве можно обращаться к методам не статического класса без создания экземпляра класса) . а потом мы создаем экземпляр класса WebApplication, используя метод класса WebApplicationBuilder. Какое-то зарождение сервера из самого себя получается

    • @Cleannetcode
      @Cleannetcode Před rokem

      там сами методы статические :) а так да, в программ создается экземпляр сервера и там же запускается. Но это норма, ведь по сути все приложения так или иначе имеют входную точку откуда все инициализируется и создается. А затем когда все что нужно приложение готово, приложение запускается вон даже у десктопных приложений порой перед запуском ты мельком видишь экран прогрузки

  • @konstantinpodgaets2313

    а формат в котором api выдает данные не нужно явно указывать? или это встроено в проект, что формат данных на выходе из api передается в запросе?

    • @Cleannetcode
      @Cleannetcode Před rokem

      aspnet web api по умолчанию использует json как формат по умолчанию но при желании это можно настроить :)

  • @user-qh8on7iq8p
    @user-qh8on7iq8p Před rokem

    Давно искал ролик на эту тему, спасибо)