Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WorkerService模板是否适合在DDD解决方案中创建应用程序核心?_C#_Asp.net Core_Domain Driven Design - Fatal编程技术网

C# WorkerService模板是否适合在DDD解决方案中创建应用程序核心?

C# WorkerService模板是否适合在DDD解决方案中创建应用程序核心?,c#,asp.net-core,domain-driven-design,C#,Asp.net Core,Domain Driven Design,我正在阅读,我想知道对于实现DDD解决方案的内部部分(最接近域/模型和包含所有业务逻辑和用例的部分),worker服务是否是一种好的项目类型 (图像从中剪下。) 在我看来,情况确实如此,这将是一个比以前使用默认web服务更明智的选择。可悲的是,由于该功能在.NETCore3下是新的,所以没有太多可靠的资料可以让谷歌从中获得灵感 按照我的想法,我可以将继承类的实例注入到worker中,而不会影响DDD体系结构。还是有我在这里没有看到的考虑因素?首先,领域驱动设计从来都不是一种架构风格或模式。它是

我正在阅读,我想知道对于实现DDD解决方案的内部部分(最接近域/模型和包含所有业务逻辑和用例的部分),worker服务是否是一种好的项目类型

(图像从中剪下。)

在我看来,情况确实如此,这将是一个比以前使用默认web服务更明智的选择。可悲的是,由于该功能在.NETCore3下是新的,所以没有太多可靠的资料可以让谷歌从中获得灵感


按照我的想法,我可以将继承类的实例注入到worker中,而不会影响DDD体系结构。还是有我在这里没有看到的考虑因素?

首先,领域驱动设计从来都不是一种架构风格或模式。它是一种围绕业务领域设计系统并识别不同级别边界的方法,如系统和语言边界(有界上下文)和事务边界(聚合)

大多数基于DDD构建的应用程序的核心是域模型。领域模型是一种古老的模式,早在DDD之前就存在了。该模式本身及其DDD解释共享一个重要特征——实现域模型的代码与任何基础设施都没有依赖关系。因此,它非常适合端口和适配器/六边形体系结构

域模型的具体宿主位置以及您想要的应用程序服务(端口)和边缘层(适配器)的类型与DDD完全正交。工作者服务、持久参与者、消息使用者、REST或gRPC端点——不管是什么

有些人认为持久的参与者是表示聚合的完美候选者。对我来说,任何直接耦合到任何类型的基础设施的东西都不适合作为域模型的一部分。不过,它可以很好地作为主机和应用程序层的候选者