Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Domain driven design Get方法如何适用于领域驱动设计_Domain Driven Design_Nservicebus - Fatal编程技术网

Domain driven design Get方法如何适用于领域驱动设计

Domain driven design Get方法如何适用于领域驱动设计,domain-driven-design,nservicebus,Domain Driven Design,Nservicebus,目前我正在学习领域驱动设计。根据我的理解,我创建了一个示例应用程序,它在国家/地区执行一些操作 我已经创建了一个名为“MyTest.Country”的类库,其中包含所有命令- --MyTest.Country (ProjectName) -- Commands (Folder) --CreateCountry (: ICommand) --DeleteCountry (: ICommand) 我有另一个名为“MyTest.CountryClient”的

目前我正在学习领域驱动设计。根据我的理解,我创建了一个示例应用程序,它在国家/地区执行一些操作

我已经创建了一个名为“MyTest.Country”的类库,其中包含所有命令-

--MyTest.Country (ProjectName)
     -- Commands (Folder)
        --CreateCountry (: ICommand)
        --DeleteCountry (: ICommand)
我有另一个名为“MyTest.CountryClient”的类库,它使用EF与数据库交互

--MyTest.CountryClient (Project)
  --CountryClass  (ClassFile)
    --CreateCountry (Method)
    --DeleteCountry (Method)
    --GetAllCountryList (Method)
还有另一个名为“MyTest.CountryServices”的服务类库,其中包含处理程序

  --MyTest.CountryServices (Project)
      --CountryHandler : IHandleMessages<CreateCountry>
                       : IHandleMessages<DeleteCountry>
-MyTest.CountryServices(项目)
--CountryHandler:IHandleMessages
:IHandleMessages
我有一个web API,它使用NServiceBus向“MyTest.CountryServices”发送命令以创建或删除国家。消息由CountryHandler处理,然后从“MyTestCountryClient”调用相应的方法

我知道国家是一个实体,不能被定义为一个领域。然而,我只是尝试实现DDD

我的问题是:

  • 我是否遵循了正确的DDD原则

  • 如果我想获得所有国家/地区列表,我是否应该直接致电MyTest.CountryClient?或者我需要先调用服务,即使是抓取操作


  • 在您的情况下,
    CountryClient
    似乎就是您的
    存储库
    。如果是,你可以直接打电话


    我建议您从DDD开始使用。不要深入挖掘beggining中的消息和命令。

    请看一下Udi在此主题上的讲话:我同意fabriciorissetto的观点,您缺少存储库模式。