Чистая архитектура в ASP.NET Core. Структура реального проекта

  Рет қаралды 1,686

Дмитрий Юревич

Дмитрий Юревич

Күн бұрын

Пікірлер: 14
@Денис-д1у2д
@Денис-д1у2д 3 күн бұрын
Автор, спасибо! Скажите пожалуйста, где можно посмотреть исходный код вашего примера?
@dobrinyanicitich7514
@dobrinyanicitich7514 20 күн бұрын
Спасибо за материал очень интересно
@alexandralikin3830
@alexandralikin3830 2 ай бұрын
Дмитрий, это просто потрясающе, не останавливайтесь!
@DmitryIurevich
@DmitryIurevich 2 ай бұрын
Спасибо!
@davidmares6053
@davidmares6053 2 ай бұрын
gracias :)
@Александр-ш8я6н
@Александр-ш8я6н 8 күн бұрын
А разве Web, не должен ссылаться только на Infrastructure? на все что есть в проекте он точно не должен ссылаться.
@ENDRICO-uz8rk
@ENDRICO-uz8rk 2 ай бұрын
Спасибо, было бы хорошо если выпускашись видео по теме grpc или workers или еще интереснее имитация бэкенд разработчика, и углубленее в разработку. Я думаб что видео будут в рекомендациях. Так как спрос ОГРОМНЫЙ, а вижео на русском языке, нету
@DmitryIurevich
@DmitryIurevich 2 ай бұрын
Снимем. Что имеете ввиду под имитацией бэкенд разработчика? По поводу workers, что больше интересует, Hangfire или что то попроще , например hosted service(background worker)?
@lamenzyt4624
@lamenzyt4624 2 ай бұрын
Можно я задам пару вопросов, ответы на которые пытались дать многие, но мне, как новичку, до сих пор не очень понятно. Все они касаются чистой архитектуры в связке с efcore: 1. Зачем делать слой абстракции между dbcontext и сервисом? Какая польза от того, что мы для 10 сущностей написали 10 репо и Iрепо? Как сделать репозиторий полезным, а не просто прокси? Многие утверждают, что такой геморрой необходим, для того, чтобы легко поменять orm, если понадобится. Оправдано? Не убедительно. 2. Класс из доменной модели должен храниться в БД или необходимо создать новый класс для бд в инфраструктурном слое? Какие подводные у первого сценария? 3. Транзакции бд. Использовать в хэндлерах/сервисах? Если да, то нужно сделать интерфейс IинструментТранзакций со стартом, коммитом и роллбеком? 4. В доменной моделей возвращать Result.Failure() или генерировать исключение?
@DmitryIurevich
@DmitryIurevich 2 ай бұрын
1)1. Можно и не писать 10 репо, а написать репо к некоторым рутовым сущностям. 2. Замена ORM: Все идет от того, что чистая архитектура говорит, что домен не должен зависеть от инфры. 3. Полезным он становится если например у вас 1 и тот же запрос используется в десятках местах(легче поддерживать если что то изменилось, + читабельность увеличивается если сложный запрос, + может быть какая то доп логика в репо), также чуть легче тестировать мокая репо.Я в реальном проекте отказывался от репо и самая большая боль была в том, что один и тот же логический метод использовался во многих местах, ну и тестировать было чуть сложнее. Совет такой - попробуйте обойтись без него в своем проекте, чтобы понять плюсы и минусы, возможно те минусы, что вы найдете будут для вас некритичными. Любая библиотека/архитектура это всегда набор компромиссов 2) Я использую прямой объект на БД и все. Из минусов: тесная связь с инфрой, может понадобиться добавить какой то тех. атрибут в модель, который совсем не нужен домену. 3) Можно использовать в EF SaveChanges для управления транзакциями реализуя UoW. Если нужно что то сложнее, то есть context.Database.BeginTransaction, что тоже можно добавить в UoW. 4) Если кратко, то я использую исключения. Планирую записать ролик по этому вопросу и показать плюсы и минусы.
@ghoulking715
@ghoulking715 27 күн бұрын
зачем писать @event, зачем нужна собачка
@DmitryIurevich
@DmitryIurevich 27 күн бұрын
event это ключевое слово и зарезервировано для c#. Собака позволяет называть переменные даже с такими словами
Архитектура Go проекта на практике
30:09
Evrone Development
Рет қаралды 17 М.
Миллионер | 3 - серия
36:09
Million Show
Рет қаралды 1,1 МЛН
Real Man relocate to Remote Controlled Car 👨🏻➡️🚙🕹️ #builderc
00:24
Полный гайд по автоматизации процессов в Make.com
2:02:39
Грязный Ноукодер
Рет қаралды 4,7 М.
Асинхронность в C# и Asp Net Core на ПРАКТИКЕ
1:01:41
Kirill Sachkov - Development
Рет қаралды 7 М.
Шаблоны проектирования для микросервисов
1:07:50
Александр Бармин
Рет қаралды 31 М.
Владимир Хориков - Domain-driven design: Cамое важное
1:13:59
DotNext — конференция для .NET‑разработчиков
Рет қаралды 56 М.
Чистая архитектура ASP.NET Core 7
25:20
Excalib
Рет қаралды 13 М.
Создаем масштабируемую архитектуру
14:56
Миллионер | 3 - серия
36:09
Million Show
Рет қаралды 1,1 МЛН