问题描述
|
我正在尝试使用nHibernate,Castle Windsor,WCF和ASP .NET为基于分布式域驱动设计的系统绘制技术架构图。
我使用了典型的层,即基础结构,接口,应用程序和域层
我的理解将Diberty中的nHibernate,Castle Windsor,WCF分组为基础结构层的一部分是正确的吗?
请指教。
解决方法
我认为您的陈述正确无误,即nHibernate,Castle Windsor,WCF应该在基础结构层中。
实际上,它们的用法有所不同。
WCF通常放置在单独的程序集/项目中,因此可以视为基础设施,因为我们将其从演示文稿,服务和域组件/项目中移出了。
Nhibernate通常仅在数据/基础程序集中引用,但是某些Nhibernate模式也使用Global.asax或CustomHttpModule为每个Web请求配置Nhibernate会话。这可能很方便,但也需要其他参考。
另一方面,城堡可以在所有图层中使用。可以轻松完成静态包装程序,以删除许多Castle引用,或者查看Microsoft Practices团队的Common Service Locator。它还可以帮助解除依赖关系的耦合,因此可以使用特定的DI工具。