ImmortalCAT
@ImmortalCAT
C# loving

Best Practices ASP.NET, в чём смысл многослойности?

Наткнулся на статью Solution Arch
Классно всё написано, но без тонкостей...
Зачем такая многослойность? Repository => Service
Почему всё решение на Github, разбито на проекты?
А конкретно, почему модели в отдельном проекте и service отделен?
Или это обусловлено разными слоями архитектуры?
  • Вопрос задан
  • 623 просмотра
Решения вопроса 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
Сервис - это бизнес-логика, которая позволяет абстрагироваться от DAL с его репозиториями.

Слои:
  • абстрагированы друг от друга - заменяемы (допустим, заменяя презентационный слой можно из обычного сайта сделать SPA или бэкенд для мобильного приложения; мы не зависим от модели хранения (разные СУБД, файлы, глиняные таблички, голубиная почта), можем легко "вклинить" какой-нибудь прокси-слой между ними, который будет проводить какую-либо обработку или кэшировать, например)
  • абстрагированы друг от друга - их легко изучать, легко поддерживать (модифицировать, т.к. четко разграничена зона ответственности и меньше риск, что от взмаха крыла бабочки на другом конце света рухнет небоскреб)
  • легко поддаются независимому тестированию (взяв один тип можно легко воспроизвести вокруг него необходимое тестовое окружение)


На проекты принято дробить, как правило, как для логического отделения, как и возможности безболезненно обернуть любой такой модуль в NuGet-пакет и подключать во многих местах. На волне этой идеи и появился .NET Core.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы