ASP.NET MVC 2 在哪里放置逻辑
Posted
技术标签:
【中文标题】ASP.NET MVC 2 在哪里放置逻辑【英文标题】:ASP.NET MVC 2 Where to put logic 【发布时间】:2011-06-03 14:46:12 【问题描述】:我有一个 ASP.NET MVC 2 应用程序,其中包含一些复杂的业务规则,我正在尝试决定将特定逻辑放在哪里。
创建记录时会发生逻辑,基于该记录的某些字段需要创建其他记录。
我目前正在使用带有 ORM 的存储库模式,最简单的放置这个逻辑的地方是我的存储库类,但我觉得这是一个非常薄弱的位置,有重要的规则,我会直接把它放在我的具有我的验证和元数据的部分模型类,但我必须在我的控制器或存储库中调用方法,这可能会将太多关于实现的知识扩展到这些层。
您对我有哪些最佳实践建议?
谢谢!
【问题讨论】:
【参考方案1】:您可以在控制器和存储库之间有一个服务层。存储库对您的模型执行简单的 CRUD 操作。一个服务方法可以利用多个简单的存储库调用来组成一个业务操作。此业务操作将暴露给控制器。
【讨论】:
当您说服务层时,它是作为 WCF/数据服务/等实际服务实现的,还是只是控制器和存储库之间的另一层代码/类?如果是这样,您通常会为模型中的每个实体提供一个服务类吗?你知道使用这种模式的好例子吗?我已经看到了一些使用 MVC 的存储库模式的示例,但没有使用服务层(或者它可能在那里但我没有注意到)。以上是关于ASP.NET MVC 2 在哪里放置逻辑的主要内容,如果未能解决你的问题,请参考以下文章
在哪里可以找到好的 ASP.NET MVC 示例? [关闭]
Asp.Net Core MVC 中的 Request.IsAjaxRequest() 在哪里?