Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF与ASP.NETWebAPI_Wcf_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

WCF与ASP.NETWebAPI

WCF与ASP.NETWebAPI,wcf,asp.net-mvc-4,asp.net-web-api,Wcf,Asp.net Mvc 4,Asp.net Web Api,使用每种技术的优缺点是什么 WCF Web Api现在已合并到Asp.net中 Asp.net web api现在支持自托管 我仍然认为,如果我想为同一个操作公开多个协议模式,我仍然会倾向于WCF,或者Mvc端点也可以这样做吗 新的Asp.NETWebAPI是否也公开了Wsdl?如果没有,客户将如何确定哪些操作对他们可用 可以说Mvc最好的特性是modelbinder。WCF等价物的健壮性如何 那么,有人能告诉我Asp.NETWebAPI给我们带来了什么好处吗?依我看,WCF似乎绝对是更强大/可

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

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

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

新的Asp.NETWebAPI是否也公开了Wsdl?如果没有,客户将如何确定哪些操作对他们可用

可以说Mvc最好的特性是modelbinder。WCF等价物的健壮性如何


那么,有人能告诉我Asp.NETWebAPI给我们带来了什么好处吗?依我看,WCF似乎绝对是更强大/可扩展的选择。Mvc Web Api相对于WCF模型的唯一优点可能是易于开发,但这意味着,如果它最终成为一个严重的设计限制,那就意味着低沉。

WCF Web Api主要关注REST实现。如果您正在设置REST实现,那么标准WCF位就有点麻烦了。如果您正在设置RESTful服务,您会发现WCFWebAPI是一种更好的体验。如果您正在设置SOAP服务,那么WCF Web API不是您最好的朋友,您最好使用WCF提供服务。

首先,我建议您阅读我关于此主题的帖子:


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

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

  • ASP.NET Web API是一个仅通过HTTP构建非基于SOAP的服务的框架,因此没有更多的传输协议可用
  • WCF/Windows通信基础是一个交换基于SOAP的消息的框架——这里我们使用了很多传输协议:HTTP、TCP、命名管道、MSMQ等等。李>
    我不确定哪一个在数据量方面有更好的性能,可能是WCF,因为我们可以使用低协议。欢迎发表任何意见。

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

    是的,配置是一件痛苦的事情,但这是一次性设置成本。完成后,您几乎可以将行为/端点复制并粘贴到另一个服务。大多数情况下,您只需使用WebGet标记新操作即可。另一方面,如果您得到一个想要使用Soap+Wsdl的客户机,那么这只是一个配置更改,而不是代码+部署+QA+其余部分。那么MVCWebAPI是如何更好的呢?如果您已经习惯了WCF,那么您可以继续沿着这条路走下去。除了我提到的,WCF Web API中的REST还有一些内部改进(我前面没有这个列表),但是这两种改进都可以工作,如果你有大量的工作服务,我不会花几个星期来重构,特别是因为在思维上有一点范式的转变。对于未来的工作,我会考虑WCF Web API,但是。但我使用WCFWebAPI已经有一段时间了,所以我可能有偏见。这是一篇非常好的文章。这是我见过的最好的一个。但我现在比以前更困惑了。WebApi增加了这么多,但无法公开其他端点似乎非常有限。如果您有一个可以使用soap的客户机,那么当soap可以为他们生成整个上下文时,他们现在将被迫手工构建操作并解析结果。您还将它们锁定在更高级的Soap功能之外,如可靠会话和Acid事务。。。唉。@Alwyn-我认为您提到的所有事实都是真实的,因此不应该让您感到困惑,而是应该帮助您做出决策-Web API有其自身的优势,但是如果您的服务需要从多个端点(包括其他协议)公开,或者您非常需要客户端自动生成功能或soap高级功能—这些可能是您为什么更喜欢WCF而不是Web的原因API@BornToCode:客户端代码可以使用WebAPI自动生成。您可以使用WebAPI代码生成一个swagger json文件。然后,代码生成器(如swagger codegen)可以使用该json文件以大量目标语言生成客户机代码。@无意中Leftblank-IMHO通过WCF自动生成客户机代码比Web API更“用户友好”。我发现这个问题的标题有点误导。标题是“MVC4VSWCFWebAPI”,但问题似乎更多地涉及Wcf VSASP.NETWebAPI。从标题中,我认为比较的是标准MVC4框架(控制器、模型、视图)和ASP.NETWebAPI框架。还有人认为这个标题有误导性吗?无意冒犯,但HTTP只是一个应用层协议。它对可以使用什么传输层协议没有固有的限制。