共享包含 wcf 接口(interface)和数据契约(Contract)的项目并通过 ChannelFactory 使用它们来使用服务是否违反 SOA 原则?
我的架构师建议最好使用添加服务引用生成代理。
最佳答案
我想这取决于一些事情:您的基础架构、安全策略、治理等。
我们设计 WSDL(服务和消息契约)和 XML 模式(数据契约),然后使用 svcutil.exe* 生成代理。到那时,我们就有了可以用来消费或建立服务的代码。当然,我只是在谈论代码,output.config 将根据确定的适当行为、绑定(bind)和端点进行修改。
服务启动后,它的前面是一个 XML 网关。此时我们可以使用“添加服务引用...”开始测试服务。如果您只是想节省一些时间并将您预先生成的代理或您的 WSDL 未公开(因为它们位于不回显它们的 XML 网关后面)的其他人,那么您正在做的事情似乎很好.
否则,我希望消费者能够“添加服务引用...”并生成他们自己的客户端。
*基于 Java 的应用程序使用其他工具(WSDL2Java/ClientGen/内置 IDE 工具)。
关于WCF ChannelFactory 是否违反 SOA 原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735817/