我认为这个问题的要素已经在其他地方得到解答,但是我找不到针对我的具体情况的答案。
我使用企业应用程序。该应用程序通过当前仅一个类和大量代理dll与各种第三方API和服务接口。这意味着这些dll中的每一个都在主项目中被引用。除此之外,随着时间的推移,我们添加了新的服务调用,许多代码已经被复制,只有很小的修改。大多数服务调用都做大致相同的事情,并且使用与参数相同的对象。
您可以想象,这给我们带来了许多问题,尤其是添加新服务所花费的时间。
我们现在有一个任务,就是重构和简化此过程,以使其更易于管理和适应性强-我脑子里有个主意,我做了很多研究,但我只是想看看是否有人有更好的主意或类似的经历,然后再潜入。
我想要做的是添加一个Facade层,以便基本代码获取所有常用数据并将其与规定了要调用的服务的参数一起捆绑到Facade。然后,Facade将把数据传递到代理服务器或桥,然后将其转换为目标服务的正确格式,按顺序进行所需的调用,并将所有响应返回给Facade以继续进行。
尽管我对我想要的体系结构有所了解,但我不确定100%就具体的C#代码走哪条路-是否在新的项目中添加外观和桥梁/适配器代码,而新项目也具有引用的代理dll,或者是否遵循基本/接口路由并将所需的转换类直接添加到代理dll中。
编辑添加:由于无法在此讨论的更广泛的基础结构考虑,我无法考虑将此功能合并到服务或微服务中。
任何建议表示赞赏!