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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC – 模型可以有业务逻辑吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我阅读了几篇将域模型(如在MVC中)定义为包含业务逻辑的文章.我从未考虑过模型来保存除模型属性之外的任何方法.

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

提前致谢.

解决方法

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

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

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

结论

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

欢迎来到权衡的世界.

猜你在找的asp.Net相关文章