WCF和一个功能来统治它们?

时间:2014-06-17 12:08:10

标签: .net wcf architecture

这是一个架构问题。

我们有客户端 - 服务器情况。我们希望摆脱远程桌面解决方案(如Citrix,Propalms等......)。 SOA似乎就是解决方案。由于安全性,我们无法使用直接SQL连接。

因此,我们使用一个函数创建一个WCF Web服务,该函数可以将查询(作为字符串)作为参数,然后返回一个包含该查询结果的字符串。我们所有的软件都会通过抛出查询(作为字符串)和等待结果(字符串)来调用此函数。

客户端exe知道这个结果是什么样的,因为它进行了调用,所以让客户端exe担心。具体而言,它将是一段XML,它将使用查询返回的数据描述列和行。因为它是我们自己的软件,所以我们在内部就XML的格式达成一致。

我的问题是:你们预见到这个解决方案有什么问题吗?

1 个答案:

答案 0 :(得分:2)

这种方法被称为"过于通用的界面",并且是一种反模式。

这种方法几乎避免了WCF为您提供的所有好处:格式化/解析,版本控制,生命周期管理和拦截(对于语义日志记录等)。它还可以防止客户端代码的可发现性(IntelliSense)和编译时检查,并鼓励客户端上的魔术字符串和服务器上的神对象设计。此外,使用必须编码到实际消息中的完整字符串会增加开销。

这种方法没有任何实际好处。有些东西似乎就像好处一样 - 比如能够在不重新编译客户端的情况下更改API。但这些实际上是个缺点:如果API发生变化,你想要客户端,这取决于旧的API,所以你知道他们需要改变。