【发布时间】:2012-02-02 20:41:24
【问题描述】:
多年来,我一直在使用 .Net 开发企业应用程序 我的应用程序通常有一个域模型,其中包含映射到 SQL 数据库表的实体。 我使用存储库模式、依赖注入和服务层。
最近我们开始从事 MVC 3 项目,我们曾争论将哪个逻辑放在哪里。 我遇到了瘦控制器/FAT 模型架构,想知道服务层如何适应
选项 1 - 模型与服务对话
控制器很瘦,在模型上调用方法。模型“知道”如何从数据库中加载自己并与存储库或服务通信。 例如。 customerModel 有一个 Load(id) 方法并加载客户和一些子对象,例如 GetContracts()。
选项 2 - 控制器与服务对话
控制器要求服务检索模型对象。加载/存储等逻辑在服务层。该模型是纯实体模型,仅包含数据。
为什么选项 1 是一个更好的选择,尤其是当我们谈论企业应用程序时,我的经验告诉我要分离关注点,保持模型和控制器尽可能精简,并让专门的服务来处理业务逻辑(imcl。数据库交互)
感谢所有建议和对优质资源的参考。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 model-view-controller architecture service-layer