加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC – 模型可以有业务逻辑吗?

发布时间:2020-12-16 04:20:04 所属栏目:asp.Net 来源:网络整理
导读:我阅读了几篇将域模型(如在MVC中)定义为包含业务逻辑的文章.我从未考虑过模型来保存除模型属性之外的任何方法. 我想知道实际上是否存在支持在域模型中具有功能和业务逻辑的思想. 提前致谢. 解决方法 当然,业务逻辑应该在域模型中.但是,领域模型不仅仅是实体
我阅读了几篇将域模型(如在MVC中)定义为包含业务逻辑的文章.我从未考虑过模型来保存除模型属性之外的任何方法.

我想知道实际上是否存在支持在域模型中具有功能和业务逻辑的思想.

提前致谢.

解决方法

当然,业务逻辑应该在域模型中.但是,领域模型不仅仅是实体框架实体.域模型由许多反映业务领域的小类组成.

在我的典型MVC应用程序中,我通常将某种类型的业务逻辑拆分为这些(但不限于):

>负责视图模型的ViewModel.
>控制器很薄,负责应用程序流程.
>必需字段等简单业务逻辑可以作为实体框架模型或ViewModel中的属性存在.
>复杂的业务逻辑(如下订单,预订单)被提升为自己的类,如PlaceOrderOperation或PlaceOrderCommand.
>简单查询逻辑可能在Controller内部或短扩展方法到DbSet< Entity>类型.
>复杂查询也提升到自己的类,例如GetMostPorpularProductsQuery,假设查询很复杂.
>基础结构组件可以是Entity Framework或MVC组件的扩展,例如ActionFilter,CustomRoute,CustomTemplate或其自己的类,如EncyptionHelpers等.

结论

构建域模型不仅仅是使用BusinessLogic(如UserBusinessLogic)或使用UserServices等服务创建类前缀.它应该由许多负责一件事的小班组成.当然,您需要使用一些设计模式,框架选择,基础架构组件,如错误处理,本地化,缓存等.

欢迎来到权衡的世界.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读