1

描述:我在 Visual Studio 中有一个解决方案,它有多个项目作为应用程序层。

  1. 业务逻辑(.NET 标准)
  2. 用于数据库操作的数据访问层(.NET 标准)
  3. Web 应用程序 (.NET Core)
  4. Xamarin Forms 移动版
    1. Xamarin Android
    2. Xamarin IOS
    3. Xamarin UWP

问题:我应该在哪一层创建我的 MVC 控制器作为这种场景的良好设计实践?

4

1 回答 1

1

控制器属于 Web 层,因为它们处理与 Web 相关的活动,例如路由、处理传入的 http 请求等。

问问自己控制器的用途是什么,然后看看这些活动在哪一层有意义……处理传入的 http 请求在数据层中最有意义吗?不,数据层应该和数据I/O有关。

在业务逻辑层中处理传入的 http 请求是否最有意义?不,业务逻辑应该包含只需要执行您正在构建的业务/域逻辑的逻辑。

在 Web 层中处理传入的 http 请求是否最有意义?是的,正如我们所知,http 请求是网络的一部分。

网络上有大量关于 n 层(又名洋葱)架构的信息。是我快速挖掘的一个示例,它比我上面的答案更详细

于 2019-03-22T13:45:57.640 回答