我正在尝试使用nHibernate,Castle Windsor,WCF和ASP .NET为基于分布式域驱动设计的系统绘制技术架构图
我使用了典型的层,即基础设施,接口,应用和域层
根据DDD,我的理解是否正确将nHibernate,Castle Windsor,WCF分组为基础架构层的一部分?
请告知。
答案 0 :(得分:1)
我认为你的陈述中你的nHibernate,Castle Windsor,WCF应该在基础设施层中是正确的。
实际上它们的用法不同。 WCF通常放在一个单独的程序集/项目中,因此我们可以将其视为infralayer,因为我们将它从表示,服务和域组件/项目中移出。
Nhibernate通常仅在数据/ infra程序集中引用,但是一些Nhibernate模式也使用Global.asax或CustomHttpModule为每个Web请求配置Nhibernate会话。这可以很方便,但也需要额外的参考。
另一方面,城堡在所有层中都很有用。可以轻松地执行静态包装以删除许多Castle引用,或者查看Microsoft Practices团队的Common Service Locator。它还可以帮助解耦依赖关系,以便使用特定的DI工具。