Asp.net mvc net MVC:这种模式是合理的还是概念上不正确?

Asp.net mvc net MVC:这种模式是合理的还是概念上不正确?,asp.net-mvc,model-view-controller,design-patterns,Asp.net Mvc,Model View Controller,Design Patterns,我的控制器将请求移交给相应的服务。然后,该服务调用各种存储库。存储库使用Linq到Sql实体纯粹用于数据访问,然后映射并作为域对象返回。然后,服务决定控制器将显示什么,并用返回控制器以在视图中显示的表示对象替换DO 所以我有服务存储库域对象-表示对象 我这样问是因为我似乎有很多对象,有些什么都不做,只是传递数据。这是一个合理的场景,还是我没有遵循正确的MVC模式?如果您的应用程序足够大,那么您的模式是有意义的。否则的话,我会觉得过度工程化 扪心自问:如果这一层不存在,你会发现它是真是假。是的,你

我的控制器将请求移交给相应的服务。然后,该服务调用各种存储库。存储库使用Linq到Sql实体纯粹用于数据访问,然后映射并作为域对象返回。然后,服务决定控制器将显示什么,并用返回控制器以在视图中显示的表示对象替换DO

所以我有服务存储库域对象-表示对象


我这样问是因为我似乎有很多对象,有些什么都不做,只是传递数据。这是一个合理的场景,还是我没有遵循正确的MVC模式?

如果您的应用程序足够大,那么您的模式是有意义的。否则的话,我会觉得过度工程化


扪心自问:如果这一层不存在,你会发现它是真是假。是的,你的想法是对的。它可以有很多类和接口(甚至不包括单元测试和模拟/测试类),但是如果你有一个相当大的应用程序,那么无论如何你都有很多。但一开始,这是一个很大的工作,没有太多的初始收益

我看到一些项目跳过了一些基本服务的服务实现,这些服务只是传递到存储库,而没有任何服务增值。它们直接从控制器进入存储库,似乎损失不大


在可能的情况下,还可以通过使用工具来减轻某些类的负担。例如,像这样的项目可以帮助简化域对象以查看模型映射。

我有一个非常类似的场景。最初,我的项目有UI、控制器、服务层和存储库。我的单元测试涵盖了服务层和存储库(过滤器),在某些情况下,单元测试也在做同样的事情(因为服务层有时会传递到存储库)

由于一次大规模的重构,我删掉了服务层,这给了我很大的灵活性,控制器直接处理存储库并应用过滤器来获得我想要的东西


我遇到的一个问题是无法序列化Linq2Sql对象,因此有时必须将这些对象转换为表示对象。

但我可能想在以后扩展,然后呢?做好准备不是最好的吗?当我变得懒惰的时候,我想直接去存储库进行简单的操作,认为这是浪费时间。所以我猜不只是我?当然不只是你。我一开始是通过服务进行严格访问,但现在已经开始跳过精简服务。我想如果他们没有添加太多内容,那么以后可以轻松添加。如果需要额外的功能,我只是尝试在存储库周围快速创建一个服务。