Где должны быть контроллеры в многослойном решении - PullRequest
1 голос
/ 22 марта 2019

Описание: У меня есть решение в Visual Studio, которое имеет несколько проектов в качестве уровней приложений.

  1. Бизнес-логика (.NET Standard)
  2. Уровень доступа к данным для операций с базами данных (.NET Standard)
  3. Веб-приложение (.NET Core)
  4. Xamarin Forms Mobile
  5. Xamarin Android
  6. Xamarin IOS
  7. Xamarin UWP

Вопрос: В каком слое я должен создать свои контроллеры MVC как хорошийпрактика проектирования для этого сценария?

1 Ответ

1 голос
/ 22 марта 2019

Контроллеры принадлежат к веб-слою, так как они обрабатывают связанные с Интернетом действия, такие как маршрутизация, обработка входящих http-запросов и т. Д.

Спросите себя, для чего предназначен контроллер, а затем посмотрите, на каком уровне эти действия имеют смысл ... имеет ли смысл обрабатывать входящие http-запросы на уровне данных? нет, уровень данных должен быть связан с вводом / выводом данных.

Имеет ли смысл обработку входящих запросов http на уровне бизнес-логики? нет, бизнес-логика должна содержать логику, необходимую только для выполнения бизнес-логики / предметной логики того, что вы строите.

Имеет ли смысл обрабатывать входящие http-запросы на веб-уровне? Ну, да, http-запросы являются частью сети, какой мы ее знаем.

В сети очень много информации об архитектуре n-уровня (aka onion). Здесь - это один пример, который я быстро выкопал, и который более детален, чем мой ответ выше

...