WCF与ASP .Net Web API

时间:2012-03-19 22:06:19

标签: wcf asp.net-mvc-4 asp.net-web-api

使用每项技术的优缺点是什么?

WCF Web Api现已合并到Asp.net中 Asp.net web api现在支持自托管。

我仍然想象如果我想为同一个操作公开多个协议模式,我仍然倾向于WCF,或者Mvc端点也可以这样做吗?

新的Asp.Net web api也暴露了Wsdl吗?如果不是,客户如何找出他们可以使用的操作?

可以说,Mvc的最佳特点是模型绑定器。 WCF的等效性有多强?

那么有人能告诉我Asp.net web api带来的优势是什么? WCF似乎绝对是更强大/可扩展的选择,imo。关于Mvc Web Api对WCF模型的唯一影响可能是易于开发,但这意味着如果它最终成为一个严重的设计限制,则会蹲下。

4 个答案:

答案 0 :(得分:72)

首先,我建议你阅读我关于这个主题的帖子: http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my-two-cents-on-the-subject.aspx

关于您的WSDL问题 - 由于WebApi不使用SOAP,因此它不需要WSDL,也不会导出WSDL。您可以使用Hypermedia返回包含可能活动URL列表的资源(将其视为自描述资源)

答案 1 :(得分:15)

选择取决于我们想做什么。

  1. ASP.NET Web API是一个仅通过HTTP构建非基于SOAP的服务的框架 - 因此使用此框架无法提供更多传输协议。
  2. WCF / Windows Communication Foundation是一个交换基于SOAP的消息的框架 - 这里我们使用了很多传输协议:HTTP,TCP,命名管道,MSMQ等......
  3. 我不确定哪一个在数据量方面有更好的性能,可能是WCF,因为我们可以使用低协议。任何评论都表示赞赏。

答案 2 :(得分:8)

WCF Web API主要关注REST实现。如果您正在设置REST实现,那么标准WCF位在后面会有点痛苦。如果您正在设置RESTful服务,您会发现WCF Web API是一种更好的体验。如果您正在设置SOAP服务,那么WCF Web API不是您最好的朋友,您最好将WCF用于您的服务。

答案 3 :(得分:0)

对于内部网/ B2B站点使用WCF n用于B2C / C2C / Internet站点的Web API ... SOAP / XML仍然是企业内部通信的标准,它不会消失!!!