说明: 我在Visual Studio中有一个解决方案,其中有多个项目作为应用程序层。
问题: 对于这种情况,我应该在哪一层创建MVC控制器作为良好的设计实践?
答案 0 :(得分:1)
控制器属于Web层,因为它们处理与Web有关的活动,例如路由,处理传入的HTTP请求等。
问问自己控制器应该做什么,然后看看这些活动在哪一层有意义...处理传入的HTTP请求在数据层是否最有意义?否,数据层应与数据I / O相关。
在业务逻辑层中处理传入的HTTP请求是否最有意义?不,业务逻辑应该只包含执行您要构建的业务/域逻辑所需的逻辑。
在Web层中处理传入的HTTP请求是否最有意义?好吧,众所周知,http请求是网络的一部分。
网络上有很多有关n层(又称洋葱)架构的信息。 Here是我快速挖掘出的一个例子,比上面的答案更详细