【发布时间】:2010-01-06 06:27:21
【问题描述】:
我想通过 WPF 应用程序(Facebook、Twitter 等)访问多个 Web 服务。
我对 WCF 完全不熟悉,我想知道我应该使用什么以及为什么(优点和缺点)? WCF 或其他更传统的东西(如 HttpWebRequest)?
【问题讨论】:
标签: c# .net wcf web-services
我想通过 WPF 应用程序(Facebook、Twitter 等)访问多个 Web 服务。
我对 WCF 完全不熟悉,我想知道我应该使用什么以及为什么(优点和缺点)? WCF 或其他更传统的东西(如 HttpWebRequest)?
【问题讨论】:
标签: c# .net wcf web-services
使用 WCF! 这是要走的路,是微软“连接系统”战略的现在和未来。您可以使用 WCF 附加到几乎任何东西 - 与 Khalid 相反,我认为它的学习曲线并不高。
给自己买一本好书 - 我推荐 Michele Leroux Bustamante 的 Learning WCF - 看看她的样本,和那些一起玩。
还可以查看在线资源:
这应该很容易让你开始!那里还有很多东西。
观看这两个 DNR-TV 屏幕截图 - 它们展示了如何真正了解 WCF 配置方面的需要。这真的不是火箭科学!但不幸的是,“添加服务参考”和svcutil.exe 都倾向于创建非常复杂且过于复杂的配置 - 这不是必需的。
更多关于 WCF REST 和 Twitter 的在线资源:
【讨论】:
既然可以让 WCF 为您做一些工作,为什么还要“传统”呢?
如果您要访问多项服务,您将编写大量重复的代码。然后,您可以将副本重构为调用服务的框架。
WCF 已经是这样的框架了,为什么还要自己写呢?
【讨论】:
我使用 WCF 和直接 Web 请求进行了开发。
WCF 在开发 Web 服务时可能很棒,但不能保证所有第三方服务都将实现与 WCF 一起使用的协议(添加服务引用或 svcutil)。
WCF 还具有托管在您想要的任何位置的优势,例如控制台、网站、WPF 应用程序或 Windows 服务。在配置方面,WCF 的学习曲线很高,因此请理解。
越来越多的第三方服务正在采用 REST 接口。这意味着您的大部分调用将使用 HttpWebRequest 完成。调用服务后,您将遇到反序列化返回数据的问题(XML、JSON、键/值对、固定长度)。如果是 XML 或 JSon,请考虑使用 XmlSerializer 或 DataContractSerializer。
因此,如果您正在编写自己的 Web 服务(调用传入),请继续使用 WCF。如果您正在使用 Web 服务(调用服务,例如 Twitter),您很可能无法选择使用 WCF。
【讨论】: