描述:我在 Visual Studio 中有一个解决方案,它有多个项目作为应用程序层。
- 业务逻辑(.NET 标准)
- 用于数据库操作的数据访问层(.NET 标准)
- Web 应用程序 (.NET Core)
- Xamarin Forms 移动版
- Xamarin Android
- Xamarin IOS
- Xamarin UWP
问题:我应该在哪一层创建我的 MVC 控制器作为这种场景的良好设计实践?
描述:我在 Visual Studio 中有一个解决方案,它有多个项目作为应用程序层。
问题:我应该在哪一层创建我的 MVC 控制器作为这种场景的良好设计实践?
控制器属于 Web 层,因为它们处理与 Web 相关的活动,例如路由、处理传入的 http 请求等。
问问自己控制器的用途是什么,然后看看这些活动在哪一层有意义……处理传入的 http 请求在数据层中最有意义吗?不,数据层应该和数据I/O有关。
在业务逻辑层中处理传入的 http 请求是否最有意义?不,业务逻辑应该包含只需要执行您正在构建的业务/域逻辑的逻辑。
在 Web 层中处理传入的 http 请求是否最有意义?是的,正如我们所知,http 请求是网络的一部分。
网络上有大量关于 n 层(又名洋葱)架构的信息。这是我快速挖掘的一个示例,它比我上面的答案更详细