我正在设计一个企业解决方案,该解决方案由产品范围内的模块化产品组成,首先使用实体框架代码来定义域模型并提供数据访问。
例如解决方案:
ProductRange.Authentication
ProductRange.Gateway
ProductRange.OrderSystem
ProductRange.MarketingSystem
这些产品(解决方案)中的每一个都将具有相似的层,目前:
每个解决方案中的项目:
ProductRange.OrderSystem.Model (contains code first POCOs)
ProductRange.OrderSystem.DataContext (contains the dbContext)
ProductRange.OrderSystem.DataAccess (contains the Generic Repository)
ProductRange.OrderSystem.Service.DomainLogic (contains business logic)
ProductRange.OrderSystem.Service.ApplicationLogic (contains application logic)
ProductRange.OrderSystem.Presentation.AdminWebsite
ProductRange.OrderSystem.Presentation.CustomerWebsite
一些产品将需要访问另一个产品的域逻辑,特别是它们都需要访问 ProductRange.Authentication 但 ProductRange.MarketingSystem 将需要查询 ProductRange.OrderSystem
我正在考虑通过 WCF 服务公开范围内产品之间的域逻辑。但我还需要在本地引用产品(例如创建项目引用)。
我应该如何实施呢?我应该创建一个 WCF 服务,例如调用域逻辑并公开它的 ProductRange.OrderSystem.WCF,还是我的域逻辑本身应该是一个 WCF 服务?如果是后者,我是否总是必须通过 WCF 引用我的域逻辑,甚至从本地 ApplicationLogic 引用?
我想我正在寻找一些关于拥有哪些层以及如何最好地提供解决方案之间的相互连接的指导。