asp.net-mvc – 在ASP.NET MVC应用程序中放置数据操作和业务逻辑
看过Rob Conery的Kona应用程序的样本后,我发现他正在使用IoC – ISession,他有数据层代码和服务,他在操作数据存储区中的数据时需要执行一些额外的业务逻辑.例如,我们可能不仅仅是向DB添加记录,而且还改变了另一条记录的属性,增加了一些计数,取回了一些东西等等.我们需要将这些额外的代码放在一边,并将它放在那些服务中.
例如,他有一个操纵客户的CustomerService.这要求我们将ISession实例发送到CustomerService,以便CustomerService可以使用它来访问数据存储区. 现在另一种方法是将其他代码放在Customer类本身,并将ISession(或IRepository,无论我们使用的术语)发送到该类.而且没有任何服务.通常,Customer,Order,Product等类是Model类,因此会导致大/重模型类. 我的问题是,哪种解决方案更好?到目前为止,我没有必要,因为我在控制器中有大部分代码,但现在随着应用程序的增长,我需要对此做出决定并清理控制器. 目前我有: 我应该搬到: 或者 解决方法
我建议您使用包含模型类和服务层的原子操作的存储库,这些存储库依赖于这些存储库来定义业务操作. AOP的概念可用于在每个业务操作开始时自动启动SQL事务,并在结束时提交或在异常情况下回滚.
最后,控制器将使用这些服务类并在域模型和视图模型之间进行转换. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – 在razor中获取当前用户名
- asp.net-mvc – ASP.NET MVC 3:如何强制ActionL
- 注册asp.net 4.0 到IIS
- asp.net-mvc – WebApi是否支持开箱即用的applic
- asp.net-mvc – 无法在MVC 2 RC区域中设置默认控
- asp.net-mvc – 使用ASP.NET MVC测试驱动的开发
- 什么是ASP.NET MVC中的环境路由值及其工作原理?
- SQL Server 2005:一个使用新创建的User的问题和
- asp.net-mvc-3 – 使用MVC 3的Knockout java脚本
- 每个请求的ASP.NET 5(VNext)Autofac实例