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

asp.net-mvc – ASP.NET MVC应用程序架构“指南”

发布时间:2020-12-16 03:19:04 所属栏目:asp.Net 来源:网络整理
导读:我正在寻找一些基于ASP.NET MVC的CMS应用程序架构的反馈. 域模型 – 除了System类之外什么都不依赖于定义类型.目前,大多贫血. 存储库层 – 抽象数据访问,仅由服务层调用 服务层 – 在域模型上执行业务逻辑.将视图模型暴露给控制器. ViewModelMapper – 在视
我正在寻找一些基于ASP.NET MVC的CMS应用程序架构的反馈.

域模型 – 除了System类之外什么都不依赖于定义类型.目前,大多贫血.

存储库层 – 抽象数据访问,仅由服务层调用

服务层 – 在域模型上执行业务逻辑.将视图模型暴露给控制器.

ViewModelMapper – 在视图模型和域模型之间来回转换的服务

控制器 – 超薄“交通警察”风格功能,与服务层交互,仅根据视图模型进行讨论,从不进行域模型

我的域模型主要用作数据传输(DTO)对象,目前逻辑很少.我发现这很好,因为它取决于什么(甚至不是服务层中的类).

服务层有点棘手……我只希望控制器能够访问视图模型以便于GUI编程.但是,有些服务需要相互通信.例如,我有一个事件服务,在标记内容,创建博客帖子等时通知其他侦听器服务.目前,将域模型作为输入或返回它们的方法标记为内部,因此它们不能被控制器.

听起来有点矫枉过正?抽象不够?我主要是将这作为一种严格的建筑学习而不是实际产品的学习练习,所以请不要按照“正确取决于你想做什么”的方式做出反馈.

谢谢!

解决方法

总的来说,这个设计对我来说很好看.

还有一些我可能会做的事情:

>验证 – 进行2步验证 –
第1步:域级类强制执行自己的有效性(通过属性或任何其他机制).
步骤2:存储库确保对象在存储库的上下文中有效
>依赖注入 – 使用DI框架注入依赖项.它对单元测试很有用.此外,如果需要跨服务调用的服务层,请检查有关聚合服务的这篇文章是否有用:http://blog.ploeh.dk/2010/02/02/RefactoringToAggregateServices.aspx

> ViewModels – 可能很有可能重复使用,但等待&在你最终决定之前观看

HTH.

(编辑:李大同)

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

    推荐文章
      热点阅读