基础设施服务就像我们的IEmailSender, 直接与外部资源(例如文件)通信 系统,注册表,SMTP,数据库等。像NHibernate一样 会出现在基础设施中。
用于抽象技术问题(例如MSMQ,电子邮件提供商等)
a)持久性对象(即Repositories / DAL)是否也被视为基础设施服务(根据上述报价)?
b)所有与外部资源通信且不属于主要问题域的服务(即删除它们会影响应用程序,但它不会影响核心域问题)被视为基础结构服务
除了那些与外部资源直接通信的服务外,还有其他类型的服务也属于基础设施服务的范围吗?谢谢
答案 0 :(得分:1)
只需使用
用于抽象技术问题(例如MSMQ,电子邮件提供商等)
作为主要规则。 基础设施服务隐藏了潜在的技术细节。当您从一种技术转移到另一种技术(特定的邮件客户端库;消息传递队列实现,数据存储,日志记录例程,等等,直到整个.net框架和计算机体系结构)。
所以 - repository / dal接口是域的一部分,因为它们从持久状态构造对象。他们的实现(有时是可插拔的)是基础设施部分。
(抱歉,但我认为b)和c)作为更多的理论问题,只能考虑特定的应用程序才能解答。