Хорошая архитектура ASP.NET

330
09 декабря 2016, 08:50

Здравствуйте. Я пытаюсь разобраться в том, как правильнее составлять архитектуру ASP.NET приложения. Я понимаю, что это зачастую очень индивидуальный вопрос, но все же.

Я посмотрел два варианта архитектуры: многоуровневая и Onion.

1. Многоуровневая. Изучал тут

Здесь мне не очень понравился тот факт, что Data Access Layer содержит и модели, и логику их хранения в БД.

2. Onion архитектура и DDD

На первый взгляд все хорошо, но при приближении к реальности возникают вопросы.

  • Говорят, что бизнес-логика должна быть в Domain. Но ведь для ее работы необходимо осуществлять операции с БД, т.е. зависимость от, условно, IRepository

3. Гибрид Подумав, я пришел к такой гибридной архитектуре:

  • Я намеренно учел в ней изначально поддержку Identity/другого аналогичного решения, потому что иначе это может стать трудно
  • Отдельные интерфейсы для разных репозиториев, потому что Generic-repository - антипаттерн , потому что не позволяет учитывать особенности разных моделей.

Собственно, вопрос

Как вы считаете, будет ли эта архитектура достаточно удобной в использовании?

UPD

User, Role - получается, что Domain Models оказываются зависимы от Identity, чего хотелось бы избежать. Или это нормально и маппить их на DTO в слое бизнес-логики?

READ ALSO
Как заполнить ComboBox из массива?

Как заполнить ComboBox из массива?

У меня есть большой стринговый массив и нужно по нему заполнить ComboBox в ListBox можно сделать так listBoxItems

330
Подсчитать количество нулей и единиц в массиве

Подсчитать количество нулей и единиц в массиве

Прошу помочь найти ошибкуСчитает все элементы

299
Заполнение DatagridView из Массива объектов или коллекции

Заполнение DatagridView из Массива объектов или коллекции

Имеется компонент dataGridView и массив\коллекция объектовКак заполнить dataGridView из массива\коллекции объектов?

417
Считать из файла и суммировать

Считать из файла и суммировать

В файл ранее были записаны числа с плавающей точкой, новое число в новой строкеНеобходимо считать их из файла и суммировать

267