我已经开发了几个月的大型ASP.NET MVC 3应用程序。直到项目后期才意识到我的控制器是巨大的!这些控制器的部分问题是巨大的,我无法对它们进行单元测试。
我已经将控制器的职责分为四个任务(在我看来):
由于某些业务逻辑是跨客户端和服务器端代码共享的,因此将它与视图模型构建器逻辑混合是没有意义的。因此,我立即看到至少需要两个项目:查看模型构建器和通用业务逻辑。
我意识到导航应该是控制器的责任,因此逻辑保留在MVC项目中。
关于哪个项目应该负责将ID转换为数据对象,我有点不知所措。最初,我已将此作为业务类/视图模型构建器类的职责。但是,我想我希望这些类能够与完全构造的对象一起工作。所以,我不确定这个转换应该在代码中的哪个位置发生。在我进行转换的地方似乎并不重要,代码变得重复。我一直在考虑在执行这些转换的相应项目中创建适配器,然后调用实际的业务类/视图模型构建器类。
答案 0 :(得分:1)