服务应该是自主的.令人困惑的词语
本文关键字:词语 服务 | 更新日期: 2023-09-27 18:24:49
想知道是否有人能澄清"服务应该是自主的",我看过stackoverflow和谷歌,我得到了很多理论,但没有实践的例子。
这似乎更像是一个目标,而不是一个可以实现的目标。
让我给你举个例子:
我有客户WCF服务,所以我做
-
我的公司服务客户合同(dll)
ICustomerContract CustomerDto ICustomerRepository
-
MyCompany.Services.CustomerService(dll)
CustomerWcfService CustomerDomain CustomerRepository
为了保持它的自主性,而不是为域和存储库提供另一个dll,我将它们都放在CustomerService
(dll)中,因此它是真正的自主/
在过去,我曾经有以下dlls
- MyCompany.Core(dll)
- MyCompany.Entities(dll)
- MyCompany.Domain(dll)
- MyCompany.Services(dll)
- MyCompany.Repository(dll)
并将所有实体组合在一起所有域组合在一起,
然而,我突然想到,无论它多么简单,它都打破了SOA 的原则
关于如何构建wcf项目,有什么建议吗?
非常感谢
我一直认为这意味着服务不依赖外部逻辑。
例如,如果该服务允许保存客户数据——为了实现自主性,该服务必须封装业务规则和验证,以断言客户在提交之前是有效的,而不是依赖客户来处理它
在我看来,将整个服务封装在自己的DLL中是没有必要的。您的模式为您提供的分离是一个理想的特性,所提供的功能仅由您的wcf服务提供,它不会出现任何问题,事实上,它更适合于依赖注入、重用、单元测试和模拟。
最后一点,您的模式建议在您的服务代码外部建立一个数据存储。如果反对分离的理由是你失去了自主权,那么对存储层的依赖,或者实际上对底层框架或操作系统的依赖,肯定也会阻止自主权。