wcf - SOA 或 WCF 的反模式

标签 wcf soa

虽然我可以找到很多提倡 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/

相关文章:

javascript - HTML5 网络应用程序 - 选择服务器端技术

wcf - IIS 6.0 上 WCF 中的集成 Windows 身份验证

wcf - SOA:库与服务:库是更好的选择吗?

architecture - 如何实现缓存服务器?

.net - 本地计算机上的服务启动然后停止,如果其他服务或程序未使用某些服务会自动停止

wcf - WCF 是否受到 FREAK 攻击的影响?

.net - 仅当 Fiddler 打开时才能访问 WCF 服务

oracle11g - 在JDeveloper中找不到类bpelBlock错误

rest - YAML 作为表示服务之间交换的 REST 文档的方式不受欢迎吗?如果是,为什么?

database - 使用 Erlang/OTP 的面向服务的架构 : how to use messaging properly