我使用.Net开发企业应用程序已有很多年了。我的应用程序通常具有一个域模型,其中包含映射到SQL DB表的实体。我使用存储库模式,依赖注入和服务层。
最近,我们开始从事MVC 3项目的工作,我们在争论应该在哪里放置哪种逻辑。我遇到了瘦控制器/ FAT模型架构,并且想知道服务层如何适合
选项1-服务示范
控制器很薄,在模型上调用方法。这些模型“知道”如何从数据库加载自身并与存储库或服务对话。例如,customerModel具有Load(id)方法,并加载客户和一些子对象,例如GetContracts()。
选项2-控制器与服务对话
控制器要求服务检索模型对象。加载/存储等逻辑在服务层中。该模型是仅包含数据的纯实体模型。
为什么选项1会是一个更好的选择,尤其是当我们谈论企业应用时,我的经验告诉我要分开关注点,将模型和控制器保持尽可能的薄,并让专门的服务执行业务逻辑(包括数据库交互)
感谢您的所有建议和对良好资源的引用。