控制器应放在多层解决方案中的何处

时间:2019-03-22 13:40:19

标签: c# asp.net-mvc multi-layer

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

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

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

1 个答案:

答案 0 :(得分:1)

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

问问自己控制器应该做什么,然后看看这些活动在哪一层有意义...处理传入的HTTP请求在数据层是否最有意义?否,数据层应与数据I / O相关。

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

在Web层中处理传入的HTTP请求是否最有意义?好吧,众所周知,http请求是网络的一部分。

网络上有很多有关n层(又称洋葱)架构的信息。 Here是我快速挖掘出的一个例子,比上面的答案更详细