domain-driven-design相关内容

定时任务应该放在哪一层?

我正在尝试使用分层架构实现 DDD 应用程序.我有: 基础设施层 - 实现应用程序特定技术部分的层. 领域层 - 包含领域模型的层. 应用层 - 包含与领域模型交互的干扰的层. 接口层 - 从外部接收事件的层. 经典的 3 层(+ 基础设施)架构非常清晰.但是我的应用程序不是很经典.在 UI 旁边,我有计划任务,应该定期运行.我想过把这样的任务放到接口层,因为这些任务实际上处理U ..

域逻辑与数据验证

我正在忙着阅读和享受 Mark Seemann 撰写的《.Net 中的依赖注入》. 我很难解释确切的上下文,所以如果你熟悉这本书,请只关心这个问题. 我的问题与第 49 页第 2 章中的两个 Product 类有关.一个在域层,一个在数据访问层.说明数据访问层中的Product类是由Linq to Entity向导创建的. 我正在使用 Linq to SQL,我可以用 Ling ..
发布时间:2021-11-17 02:35:55 C#/.NET

每个实体一项服务?

再次 - 我对 DDD 的事情感到困惑:) 我有架构(我仍在研究它),简而言之就是这样: 数据层:EntityDao ->实现领域层接口(NHibernate)域层:实体存储库 ->注入 Dao 的每个实体的存储库域对象/实体 ->一些逻辑用户界面ASP.NET MVC 而我现在正处于创建和使用一些服务类的地步.我对此有一些疑问: 1.我是否应该为每个实体/域对象至少创建一个服务? ..
发布时间:2021-11-17 02:31:15 其他开发

ASP.NET MVC Web 应用程序中视图逻辑和域逻辑之间的混淆

我对域/应用程序逻辑和用户界面逻辑感到困惑.为了说明我想要确定的内容,我将在下面描述一个虚构的程序以供说明: (1)想象一个带有 3 个级联下拉列表的小型应用程序.当您选择一个下拉列表时,它会触发一个 jQuery Ajax GET,它最终命中一个 MVC 控制器,提供先前选择的下拉列表的选定值.控制器返回下一个下拉列表的允许选项.javacript(在视图中)将这些结果排列到一个下拉列表中 ..
发布时间:2021-11-17 02:30:06 C#/.NET

CQRS:查询端的业务逻辑

遵循 CQRS(命令查询职责分离)的概念,我在我的 MVC 应用程序中直接引用 DAL,并通过 ViewModel 进行所有读取.然而,我的一位同事问我,当阅读时必须应用任何业务逻辑时,你会怎么做.例如如果您需要在如下场景中计算百分比值: //Employee 域对象班级员工{字符串 EmpName;单一工资;}//在某些实用程序类中声明的常量.这也可以存储在 DB 中.const 单一税 = ..

编程模式/架构问题

我目前正在处理一个项目,其中我有一个用于其他实体的 BankAccount 实体. 作为对银行实体、帐号和可选的 IBAN 的引用的每个银行帐户. 既然可以验证 IBAN,我如何确保为帐户设置的 IBAN 有效.什么是干净的架构方法?我目前有一个域层,没有任何其他层的参考,我喜欢这种干净的方法(我的灵感来自 Eric Evans DDD).幸运的是,无需访问任何外部系统即可执行 IBA ..
发布时间:2021-11-17 02:27:57 其他开发

使用 WCF 的 DDD 项目结构

我正在启动一个新的基于 WCF 的项目,该项目由一个“引擎"和一些桌面应用程序组成.但是我发现我的项目结构很难构建. 引擎(Windows 服务,它托管用于桌面应用程序访问和托管我所有业务逻辑的 WCF 服务) 桌面应用程序(仅演示) 共享 MyProject.Core(客户/客户、客户/ICustomerService) 引擎 MyProject.Engine ..
发布时间:2021-11-17 02:24:04 C#/.NET

存储库是单例还是静态还是没有这些?

我有一个 ASP.NET 网站,它使用域驱动设计并使用存储库进行数据库操作. 我想知道单例存储库和静态存储库以及每次访问都会新建的简单存储库类的优缺点是什么? 如果有人可以比较和指导我使用其中的哪一个,我将不胜感激. 解决方案 静态和单例不是存储库模式的好解决方案.如果您的应用程序将来会使用 2 个或更多存储库怎么办? IMO 最好的解决方案是使用依赖注入容器并将您的 IRepo ..
发布时间:2021-11-17 02:20:53 C#/.NET

具有行为和 ORM 的丰富领域模型

在观看 Jimmy Bogard 的 NDC12 演示“制作邪恶的领域模型"后 (http://ndcoslo.oktaset.com/议程),我在徘徊如何坚持这种领域模型. 这是演示文稿中的示例类: 公共类成员{列出_要约;公共成员(字符串名字,字符串姓氏){名字=名字;姓氏 = 姓氏;_offers = new List();}公共字符串名字{获取;放;}公共字符串姓氏 { 获取; ..
发布时间:2021-11-17 02:20:47 C#/.NET

具有最佳实践的 N 层 ASP.NET MVC3 应用程序示例(使用 EF 4.1)

我正在寻找一个演示最佳实践的示例 ASP.NET MVC3 N 层应用程序(首先使用域驱动设计和实体框架 4.1 代码).我发现了以下内容.您推荐其中的哪一个(或不在此列表中的其他任何一个)? http://efmvc.codeplex.com/ http://prodinner.codeplex.com/ http://www.dofactory.com/Framework/F ..

与 CQRS 的多对多关系的替代方案

我们如何使用 CQRS/DDD 为经典的多对多关系建模? 我知道 DDD 和 CQRS 的实现和解决方案往往是特定于领域的,因此可能很难对这个问题给出一个通用的答案. 但是,假设我们在 Book 和 Author 之间有熟悉的关系.这是一个经典的多对多关系. 对我来说,Book 和 Author 是两个不同的实体,每个都属于自己的聚合根,这似乎是最自然的.因此,对它们之间的多对多 ..
发布时间:2021-11-17 02:16:31 其他开发

如何解决客户端 - 服务器应用程序中的无状态问题?

我读过一些关于创建无状态网站的书籍,我读过一些关于有状态客户端应用程序的书籍,但是当您必须将两者结合起来时,会出现很多复杂性.我们有一个 Flex 应用程序,它需要通过 .NET 服务将数据保存到数据库中.要记住的事情是:- 并发(乐观/悲观)- 性能:Flex 需要加载大量数据,因此通常需要延迟加载.- 您是否使用 Dto 在服务器和客户端之间传输数据? 我会告诉您我们产品的历史.我们从一 ..

在 DDD 架构中,我在哪里保留帮助类?

我正在一个 DDD 项目中工作,其中包含以下层:UI、应用程序、域和基础设施. 助手类应该住在哪里? 更新: 例如,我说的是 Object Dumper Helper. 解决方案 这要看你说的是哪种帮手. 如果它是一个 Helper 以友好的显示格式格式化一个值,那么它会更适合 UI.如果您在谈论 SqlServer 助手,那么它会转到 Infra. ..
发布时间:2021-11-17 02:12:47 其他开发

数据实体域对象ViewModels,每个都有截然不同的数据结构

这是一个关于数据实体、域对象和 ViewModel 之间映射的通用问题.我可能没有问对,但希望我能理解它.下面是一个简化的问题. 假设我有一个实体框架模型,它以 1:1 的比例映射到我的数据库表,但我的域对象可能不相同,而我的 ViewModel 又完全不同.作为一个伪示例: 数据库/EF 实体: 会员帐户 MembershipAccountExtraInfo 域: ..

DDD 架构 - 在哪里放置通用方法/助手

根据 Stack Overflow 上的这个问题, 在 DDD 架构中,“助手"类可以根据其目的位于不同的层中.例如,以用户友好的方式格式化某些内容的助手将出现在 UI 中.数据库助手将进入基础设施. 但是可以被多个层使用的辅助函数呢?例如年龄计算.在业务逻辑的模型层中可能需要年龄.它由多个实体使用,因此不应在特定实体中使用.还有一些地方仅仅为了在 UI 中显示目的而需要年龄.同样,我有可以 ..
发布时间:2021-11-17 02:11:08 其他开发

授权&服务层(.NET 应用程序)中的用户信息

我目前正在 .NET 环境(n 层)中使用企业应用程序,我想知道在我的 BussinessLayer (BL) 中管理身份验证/授权 + 数据过滤的最佳方法.我们将从多个接口(ASP.NET 应用程序和 Web 服务)使用该 BL,我认为我的 ServiceLayer 应该可以完成这项工作,但我找不到最好的方法. 我想它可能是这样的:(1) 用户获得身份验证(ASP.NET Web 客户端) ..
发布时间:2021-11-17 02:09:39 C#/.NET

MVC DDD:可以将存储库与控制器中的服务一起使用吗?

大部分时间在服务代码中我都会有这样的东西: public SomeService : ISomeService{ISomeRepository someRepository;公共做(int id){someRepository.Do(id);}} 所以有点多余 所以我开始直接在控制器中使用存储库 这样好吗?有没有这样的架构? 解决方案 您无法在两者之间建立业务逻辑. ..

DAO 模式的最佳实践?

我看过很多代码使用了service-dao模式,不知道这种模式的由来.它强制前层调用 service ,然后将部分 service 任务委托给 dao. 我想问: DAO 层是否仅执行与数据访问相关的任务?异常封装之类的东西呢? 有没有其他模式可以用来代替这个或比这个更好? 我认为 pojo 域模型和事务脚本使简单的问题变得复杂,是否有可能完全消除 dao 层? 解决方案 ..