Cleannetcode - Roman Trufanov
Cleannetcode - Roman Trufanov
  • 28
  • 112 488
Как работать с базами данных на .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 - Домашка
Ссылка на оригинальный стрим: th-cam.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
มุมมอง: 2 297

วีดีโอ

Что такое миграция БД и как с ней работать
มุมมอง 7Kปีที่แล้ว
Работа с базами данных является важным аспектом разработки программного обеспечения, и миграции БД играют ключевую роль в обеспечении гибкости и управляемости изменений. Они необходыми если мы хотим контролируемо обновлять версии схемы (таблиц) в Базе данных. В видео мы обсудим: Что такое миграции БД и для чего они нужны Какие проблемы решают миграции БД Основные способы работы с миграциями и и...
Структура ASP.NET проекта: Все, что вам нужно знать
มุมมอง 6Kปีที่แล้ว
В этом видео мы разберем основные компоненты структуры проекта на ASP.NET. Узнаем о контроллерах, мидлвейр, моделях, сервере Kestrel, классах Startup и Program. О том как они взаимодействуют когда клиент отправляет запрос. После просмотра вы сможете лучше понять что такое aspnet, как программировать свои web api проекты и успешно работать с ними. Также не забудьте выполнить домашнее задание по ...
Структура решений dotnet проектов | Чистая архитектура
มุมมอง 2.2Kปีที่แล้ว
Структура решений dotnet проектов | Чистая архитектура

ความคิดเห็น

  • @devospos
    @devospos หลายเดือนก่อน

    1:27 начало

  • @lifebase2427
    @lifebase2427 2 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 2 หลายเดือนก่อน

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

    • @lifebase2427
      @lifebase2427 2 หลายเดือนก่อน

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

  • @yotoztv
    @yotoztv 3 หลายเดือนก่อน

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

  • @superdog3000
    @superdog3000 3 หลายเดือนก่อน

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

  • @MrKost4
    @MrKost4 4 หลายเดือนก่อน

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

  • @ivanivanovich2088
    @ivanivanovich2088 5 หลายเดือนก่อน

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

  • @sardor370
    @sardor370 5 หลายเดือนก่อน

    noBuid:true ))))

  • @shinedemons
    @shinedemons 5 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 5 หลายเดือนก่อน

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

  • @qrthack3233
    @qrthack3233 6 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 6 หลายเดือนก่อน

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

    • @qrthack3233
      @qrthack3233 6 หลายเดือนก่อน

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

  • @botcser
    @botcser 6 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 6 หลายเดือนก่อน

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

    • @botcser
      @botcser 6 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 6 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 6 หลายเดือนก่อน

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

  • @semensemen-uz9qg
    @semensemen-uz9qg 6 หลายเดือนก่อน

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

  • @mimi_zaba7034
    @mimi_zaba7034 6 หลายเดือนก่อน

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

  • @techbuterbrod
    @techbuterbrod 7 หลายเดือนก่อน

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

  • @eddypartey1075
    @eddypartey1075 7 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 7 หลายเดือนก่อน

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

  • @Cleannetcode
    @Cleannetcode 7 หลายเดือนก่อน

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

  • @eddypartey1075
    @eddypartey1075 7 หลายเดือนก่อน

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

  • @maximo7561
    @maximo7561 7 หลายเดือนก่อน

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

  • @user-uj8om6ee1f
    @user-uj8om6ee1f 8 หลายเดือนก่อน

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

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t 8 หลายเดือนก่อน

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

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t 8 หลายเดือนก่อน

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

  • @devcat0
    @devcat0 10 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 10 หลายเดือนก่อน

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

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p 10 หลายเดือนก่อน

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

    • @Cleannetcode
      @Cleannetcode 10 หลายเดือนก่อน

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

    • @user-yo7mw6oj4p
      @user-yo7mw6oj4p 10 หลายเดือนก่อน

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

  • @andrexxelles
    @andrexxelles 11 หลายเดือนก่อน

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

  • @wlaidemar
    @wlaidemar ปีที่แล้ว

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

  • @konstantinpodgaets2313
    @konstantinpodgaets2313 ปีที่แล้ว

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

  • @konstantinpodgaets2313
    @konstantinpodgaets2313 ปีที่แล้ว

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

    • @Cleannetcode
      @Cleannetcode ปีที่แล้ว

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

  • @konstantinpodgaets2313
    @konstantinpodgaets2313 ปีที่แล้ว

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

    • @Cleannetcode
      @Cleannetcode ปีที่แล้ว

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

  • @user-qh8on7iq8p
    @user-qh8on7iq8p ปีที่แล้ว

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

  • @konstantinpodgaets2313
    @konstantinpodgaets2313 ปีที่แล้ว

    ощущение от урока как от мема про "рисуем сову". Очень основательные первые 10 уроков. довольно сложные 11-13 уроки. И тут БАМ! яничегонепонял

    • @Cleannetcode
      @Cleannetcode ปีที่แล้ว

      В целом могу согласиться, особенное если изучать с нуля. Данный урок сложно понять без базы по работе с http. В будущем когда буду повторять поток, постараюсь учесть этот момент и сначала ввести базу по работе с tcp/ip и http

    • @konstantinpodgaets2313
      @konstantinpodgaets2313 ปีที่แล้ว

      @@Cleannetcode скорее часть про практическую реализацию очень плохо ложится, потому что довольно быстро разбираются базовые вещи. Без построчного объяснения кода и базовых концепций. Например я поплыл, потому что не понял что GetContext() возвращает класс в который завернут и запрос и ответ на этот запрос.

    • @konstantinpodgaets2313
      @konstantinpodgaets2313 ปีที่แล้ว

      я не знаю как ребята, которые начинали этот курс с нуля пытались разобраться с темой (учитывая что домашку с этого урока скинули в дискуссии два человека которые и так умели в программирование и девушка у которой муж разработчик, то похоже никак). Но разобраться как сначала завернуть в HttpRequestMessage данные для передачи на сервер, а потом как их вытащить из HttpListenerContext, потребовало больше 3х часов. И то я так и не понял где оно там (в header?) храниться. Боль. и это я без json делал