apiquestion
@apiquestion
Студент

Нужен ли слой с бизнес логикой?

Разрабатываю API на C# (ASP.NET Core). Слой доступа данных разбит на множество модулей (напр. модуль авторизации: содержит модели и репозитории, связанные с авторизацией, модуль библиотека содержит модели и репозитории, связанные с книжками и пр., и т.д.).
Планировалось использовать все эти модули в проекте с API, а всю логику прописывать в контроллерах. Хорошая ли это идея? Или лучше создать отдельный проект, в котором будет описана вся бизнес логика, и в проекте с API использовать его? Если создать отдельный проект для БЛ, то как быть с моделями? Получается, что будут модели БД, модели бизнес логики и модели, которые я буду отдавать/получать от пользователя в API.
  • Вопрос задан
  • 1106 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
Полностью согласен с Толстый Лорри и Arkadiy Parinov, от себя хотелось бы добавить
Планировалось использовать все эти модули в проекте с API, а всю логику прописывать в контроллерах. Хорошая ли это идея?

Это плохая идея которая противоречит MVC. Контроллер не должен содержать бизнес-логики, он должен лишь содержать логику обработки запроса пользователя и все.
Или лучше создать отдельный проект, в котором будет описана вся бизнес логика, и в проекте с API использовать его?

Нужно ли выносить бизнес-логику в отдельные проект или нет - зависит от того будет ли необходимо ее использование в других проектах или нет. Но вот изолировать слой бизнес-логики от UI-слоя и слоя доступа данных стоит однозначно
Если создать отдельный проект для БЛ, то как быть с моделями? Получается, что будут модели БД, модели бизнес логики и модели, которые я буду отдавать/получать от пользователя в API.

Почитайте про разбитие приложение на слои, DDD и эти вопросы отпадут сами по себе.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы