【问题标题】:Where to put business (game) logic in aspnetboilerplate在 aspnetboilerplate 中放置业务(游戏)逻辑的位置
【发布时间】:2016-01-18 09:29:48
【问题描述】:
我是 DDD(领域驱动设计)的新手。在传统项目中,我通常会创建持久性、业务和用户界面层。现在使用 aspnetboilerplate 有一个核心、应用程序服务、实体框架和 ui 层。我的理解是域(核心)层是我的主要业务逻辑所在。我想做的是使用这种架构创建一个二十一点游戏,以便我将来可以为它创建一个移动和网络应用程序。我很难弄清楚我处理庄家、卡片、计分等的方法应该在哪里。我的直觉告诉我它应该在域层中,但我知道应用程序服务层是域和表示之间的中介。应用程序服务层处理数据传输对象等等。所以我想在这里得到的是,我的游戏如何工作的方法应该是在领域层还是在应用程序服务层?
http://www.aspnetboilerplate.com/
【问题讨论】:
标签:
c#
asp.net
.net
n-tier-architecture
asp.net-boilerplate
【解决方案1】:
领域(核心)层是您的业务逻辑的正确位置。在将数据传递到域层之前,应用层应用于验证数据传输对象 (DTO)。
【解决方案2】:
当我开始使用这个框架时,我也遇到了同样的问题。如果您尝试创建移动和 Web 应用程序,我建议您使用 Abp 的应用程序层(服务层)。如果您从 Abp 的 DTO 派生 DTO,则框架会为您处理几乎所有验证和异常。服务层形式 Abp 的好处是它生成 Js 代理来调用这些方法。
将来,如果您尝试创建移动应用程序,您可以只使用 Abp 模板中的应用程序层和 Asp.NET Web Api。它们几乎是从您的服务层到您的 Web Api 的一对一映射。