【发布时间】:2016-01-21 08:38:22
【问题描述】:
在当前的项目中,我必须开发一个 .NET 客户端应用程序,该应用程序使用少量 SOAP Web 服务与外部软件进行通信。
幸运的是,.NET 使得使用 SOAP WS 变得非常容易,因为它在添加服务引用时会生成所有必需的对象。
另一方面,在玩了一段时间这个自动生成的类之后,我不确定是直接在业务逻辑中使用它们更好,还是应该将它们映射到我自己的模型中(例如,使用类似存储库模式的东西)。
制图的优点:
- 业务逻辑和数据访问分离(WS 可以改变)
- 调用 WS 的中心点(可以验证响应并进行适当的错误处理)
- 有时 WS 类型使用起来很麻烦(例如 WebService1.TypeA 与 WebService2.TypeA 不兼容)。
- 生成的类不能/不应自定义。
- ...
映射的缺点:
一些使用的 WSDL 具有复杂的结构和大量的嵌套类型。如果将它们映射到我自己的模型,我必须复制许多类和属性。这就是我对这个解决方案感到担忧的原因。
简而言之我不确定将 Web 服务类复制到我自己的命名空间以及存储库或外观模式的实现是否是正确的方法,或者只是破坏架构。
是否有任何最佳做法或类似做法?
【问题讨论】:
标签: c# .net web-services soap auto-generate