Pri*_*nes 8 c# architecture wcf
我使用.NET 4为客户创建一个小型客户端服务器应用程序.我应该创建一个实现许多合同的巨型服务(IInvoice,IPurchase,ISalesOrder等),还是应该创建许多服务,在许多端口上运行一个合同?我的问题特别感兴趣的是两种选择的优缺点.另外,回答这个问题的常用方法是什么?
我真正的困境是我没有做出这个决定的经验,而且我对wcf的经验不足以至于我需要帮助理解这个决定的技术含义.
不要创建一个实现n个服务契约的大型服务.这些类型的服务很容易创建,但最终会成为一个维护问题,并且不会很好地扩展.另外,如果有一个开发小组竞争签到/签出,你会得到各种代码合并冲突.
也不要创建太多服务.避免使您的服务过于细化的陷阱.尝试基于功能创建服务.这些服务所暴露的方法也不应该是细粒度的.你做的更少的方法更少.通过创建GetUser(userObject用户),避免创建类似GetUserByID(int ID),GetUserByName(string Name)的函数.您将拥有更少的代码,更轻松的维护和更好的可发现性.
最后,无论你做什么,你可能只需要一个端口.
更新12/2018自从我写这篇文章以来,事情发生了变化.现在有了微服务模式,我用繁琐的API创建了很多服务:)