我一直在阅读有关ASP.NET MVC,SOLID等的一些内容,我正在尝试为中小型ASP.NET MVC应用程序找出一个简单的"配方",将这些概念放在一起; 我最关心的问题是结果是控制器太复杂,就像webforms中的代码隐藏文件一样,所有类型的业务逻辑都包含在其中.
我正在考虑以下架构,用于小型数据驱动的应用程序:
控制器:仅处理请求,调用适当的服务并将操作结果返回给View;
模型:POCO,处理所有业务逻辑,授权等.取决于存储库,完全不了解持久性基础结构.
存储库:实现IRepository
,使用依赖注入,是我的db代码所在的位置; 只接收并返回POCO.
我正在考虑在控制器和模型之间提供服务,但如果它们只是传递方法调用,我不确定它会有多大用处.
最后应该有包含模型代码的单元测试,以及覆盖存储库代码的单元+集成测试(如果可能的话,遵循"红绿"实践)
思考?
Ian Cooper最近发表了一篇很好的文章:
胖控制器