我一直在阅读一些关于 ASP.NET MVC、SOLID 等的内容,我正在尝试为中小型 ASP.NET MVC 应用程序找出一个简单的“配方”,将这些概念结合在一起;我最关心的问题是控制器过于复杂,就像 web 表单中的代码隐藏文件,其中包含所有类型的业务逻辑。
对于小型数据驱动的应用程序,我正在考虑以下架构:
- 控制器:只处理请求,调用相应的服务并将动作结果返回给视图;
- 模型:POCO,处理所有业务逻辑、授权等。依赖于存储库,完全不了解持久性基础设施。
- 存储库:实现
IRepository<T>
,使用依赖注入,是我的数据库代码所在的位置;只接收和返回 POCO。
我正在考虑在控制器和模型之间提供服务,但如果它们只是传递方法调用,我不确定它会有多大用处。
最后应该有覆盖模型代码的单元测试,以及覆盖存储库代码的单元+集成测试(如果可能,遵循“红绿”实践)
想法?