为什么我必须使用WCF而不是Web服务?
它是我在stackoverflow上的第一个问题。为什么我必须使用WCF而不是Web服务?
我已经读了很多文章,说开发人员应使用WCF,而不是Web服务,因为它可以在不同的主机环境中托管,等..
,但我在想什么的是我可以使用HttpRequest从任何项目调用Web服务。 那么为什么我必须使用WCF。
在WCF中,该出的现成绑定是BasicHttpBinding
,这仅仅是SOAP,一样的.asmx Web服务。作为客户端,您仍然可以像访问.asmx服务一样访问它 - 通过从WSDL生成代理或正常的HttpWebRequest
或以前使用的任何服务。
的好处是你与WCF得到了其他选项,如安全性,对于不同的绑定,独立主机,以及很多更多的可能性。再加上它是.NET社区选择的方向,所以如果你想保持与基于.NET服务的世界的相关性,你需要学习它。
还有很多更WCF之外还有一个ASMX Web服务。如果ASMX Web服务适合您的需求,那么可以使用它,但是您可能会发现使用WCF比ASMX Web服务更容易解决问题。使用WCF也可以做很多事情(记住它的框架不仅仅是创建Web服务的一种方式),而使用ASMX Web服务则无法做到这一点。
创建WCF服务,而不是ASMX Web服务,即使他们达到同样的目的似乎是增加了复杂性为没有额外的好处,但它是开始学习WCF的好方法。
您不必使用Windows Communication Foundation的。它最终将成为你的选择。此外,该项目可能会有助于您的需求。
但是,你可以使用Windows通信基础将是以下原因的主要原因:
- 提供跨多个platfrms通信的不同阵列:HTTP,HTTPS,TCP,MSMQ,等
- 它提供了额外的安全性。
- 它有更好的序列化和反序列化的手段。
- 它提供了更多的代码重用性。
- 不同形式的托管。
这些都是一些键,最重要的是它的设计,以节省开发者的时间在基于网络的通信。它也是面向服务架构的一种方法,用于完全敏捷的应用程序。
另外要注意,要认识到微软在标准的Web服务的支持有限;现在他们已经实施了WCF技术。
希望有帮助。
如果SOAP Web服务对您来说同样适用,则不必使用WCF。您可能必须将您的框架重新定位到2.0,因为在Visual Studio中没有用于.net 4的SOAP Webservices模板。 – 2013-03-11 17:42:49
WCF是微软实施SOA的方法。借助WCF,您可以使用多个绑定访问您的服务器,例如Net Tcp,MsMq等。 – 2013-03-11 17:43:08
您可能会对Web API作为一种替代方法感兴趣:http://www.asp.net/web-api – 2013-03-11 17:49:05