虽然我可以找到很多提倡 SOA 或 WCF 的文章,但我的问题是,什么不应该作为服务公开,我们可以从 SOA 失败中吸取教训吗? WCF是实现SOA的一种方式,如果我们使用了WCF,是否就意味着我们正在实现SOA。当然,有很多人使用 C# 编写难以维护的代码。
最佳答案
我认为你是对的。在我当前的任务(Web 开发)中,对数据库的每次访问都是作为服务实现的。正如首席架构师所说,我们是“纯粹的 SOA”......哇!
事实上,这给一切都增加了很多复杂性。当我想读取一个简单表格的内容时,我必须生成诸如 8 个项目、42 个文件、8 个程序集以及可能 9 个配置文件之类的内容!
正如我所说,非常复杂。某个地方的某个人很可能会忘记一个文件...将简单的流程公开为服务是愚蠢的。
在我的书中,您应该在以下情况下将流程公开为服务:
- 许多使用不同语言和框架的应用程序必须调用您的内容。
- 涉及多个平台(Windows、Unix...)。
- 所处理的数据是企业的核心。
此外,请注意,服务必须被设计为服务,并且设计服务至少与设计库一样复杂:错误捕获必须精心设计,日志记录必须足够灵活,文档必须完整,等等
嗯,正如我所看到的,我日常使用的大多数服务不会被其他人使用:没有文档、差劲的错误处理、代码经常更改、第二区域数据......
非常有趣的问题。 1分:o)
关于wcf - SOA 或 WCF 的反模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/447518/