在Asp.net MVC中,控制器和存储库之间是否应该有一个服务层?因为存储库只用于数据访问。一些业务逻辑泄露到控制器中。如果同一操作被经典的Asp.Net客户端使用,则可能会出现问题,因为我们必须在控制器中复制逻辑。
听起来像是需要领域服务来封装/分享您的业务逻辑。
希望这能帮到您!
我喜欢服务层在我的控制器和仓库之间提供的额外抽象层级。我觉得这有助于极大地实现单一职责原则。
我强烈建议使用服务层,这样你可以在不同的Web应用程序之间共享常见功能。也许现有的架构已经存在,你想在前端添加一个新的MVC网站。
对于从头开始构建的简单架构来说,这可能是过度设计。
我喜欢在大多数情况下直接将存储库放在控制器中,并在感觉有泄漏的情况下创建服务。我尝试拥有丰富的领域对象,但在那些逻辑不适合领域类的情况下,我会创建一个服务。