DDD+内部WCF服务公开域

DDD+内部WCF服务公开域,wcf,architecture,domain-driven-design,Wcf,Architecture,Domain Driven Design,我有一个用DDD领域驱动设计构建的非常大的应用程序。许多繁重的进程在IIS池中运行,我想将其中的一个进程移动到托管的WCF Windows服务中。这些进程是异步的 当前架构层如下所示: 域层实体、域服务 数据层存储库、映射、工作单元 具有Http端点的UI MVC应用程序+WCF 这个过程会自动生成大量的.PDF文件,然后向每位员工发送电子邮件。现在,在发送电子邮件之前,我需要为每位员工附加额外的文件,然后再这样做。对我来说,所有这些过程都必须在WCF Windows服务中,Windows服务使

我有一个用DDD领域驱动设计构建的非常大的应用程序。许多繁重的进程在IIS池中运行,我想将其中的一个进程移动到托管的WCF Windows服务中。这些进程是异步的

当前架构层如下所示:

域层实体、域服务 数据层存储库、映射、工作单元 具有Http端点的UI MVC应用程序+WCF 这个过程会自动生成大量的.PDF文件,然后向每位员工发送电子邮件。现在,在发送电子邮件之前,我需要为每位员工附加额外的文件,然后再这样做。对我来说,所有这些过程都必须在WCF Windows服务中,Windows服务使用异步的TCP端点功能托管

我想知道的是,通过内部服务发布这样的域层是否可以,并通过这样做了解我是否符合DDD体系结构。所有业务逻辑都保留在域层中

我需要从我的Mvc控制器向tcp服务发送一份员工列表,然后使用域层处理所有事情

有人能提供一些指导吗


谢谢

是的,我希望域层在它自己的项目中,因为WCF服务将需要引用该项目以及您的MVC应用程序。通常,域对象不会被标记为可序列化,因为这是一个基础结构问题,因此您可能需要创建数据传输对象,您可以将这些对象传递给WCF服务,然后WCF服务可以使用这些对象对域对象进行水合物化并对其进行操作


我希望这有帮助

非常感谢,亚伦。现在,我的应用程序在MVC项目中拥有Windsor容器配置。关于这一点,你的最佳做法是什么?我所做的是创建一个XXXX.Windsor层,里面有Windsor安装程序。从我的MVC项目中,我使用global.asax来安装所有东西,并且我在MVC项目中创建了一些自定义windsor安装程序,其中包含控制器的IoC,例如。。。这是在这种体系结构中共享windsor容器配置的一种好方法吗?我对windsor不太熟悉,但您可以将IOC容器安装到MVC应用程序中。应用程序应该选择用于域接口的具体实现。这是抽象的主要原因之一。我通过为IoC配置一个新的横切层解决了最后一部分。谢谢。