我花了几个月的时间试图掌握WCF背后的概念,最近我开发了我的第一个WCF服务应用程序。
为了理解配置文件中的所有设置,我花了不少功夫。 我不相信环境,但似乎你可以用它做惊人的事情。
前几天我发现微软推出了一个叫ASP的新东西。NET Web API。
据我所知,这是一个RESTful框架,非常容易使用和实现。
现在,我试图弄清楚这两个框架之间的主要区别是什么,如果我应该尝试用新的API转换我的旧WCF服务应用程序。
有人能帮我了解一下这两种语言的区别和用法吗?
我花了几个月的时间试图掌握WCF背后的概念,最近我开发了我的第一个WCF服务应用程序。
为了理解配置文件中的所有设置,我花了不少功夫。 我不相信环境,但似乎你可以用它做惊人的事情。
前几天我发现微软推出了一个叫ASP的新东西。NET Web API。
据我所知,这是一个RESTful框架,非常容易使用和实现。
现在,我试图弄清楚这两个框架之间的主要区别是什么,如果我应该尝试用新的API转换我的旧WCF服务应用程序。
有人能帮我了解一下这两种语言的区别和用法吗?
当前回答
关于“WebApi缺少WSDL”这句话,有几种方法来生成Rest客户端。一个流行的方法是Swagger UI / (swashbuckkle Nuget)。这提供了一个丰富的接口来理解REST端点的输入和输出模式,以及用于测试端点的在线工具。
JSON LD (JSON链接文档)是另一个新兴的标准,它将通过更好的语义公开JSON模式来进一步改善基于JSON的REST开发体验。
其他回答
对我们来说,WCF用于SOAP, Web API用于REST。我希望Web API也支持SOAP。我们没有使用WCF的高级特性。以下是来自MSDN的对比:
新的ASP。NET Web API是之前WCF Web API项目的延续(尽管一些概念已经改变)。
最初创建WCF是为了启用基于soap的服务。对于更简单的RESTful或rpish服务(考虑jQuery这样的客户端)。NET Web API应该是一个很好的选择。
关于“WebApi缺少WSDL”这句话,有几种方法来生成Rest客户端。一个流行的方法是Swagger UI / (swashbuckkle Nuget)。这提供了一个丰富的接口来理解REST端点的输入和输出模式,以及用于测试端点的在线工具。
JSON LD (JSON链接文档)是另一个新兴的标准,它将通过更好的语义公开JSON模式来进一步改善基于JSON的REST开发体验。
从使用WCF到现在,我发现WCF和Web API有很多不同之处。这两种技术栈都适用于不同的场景,所以不可能说哪个更好,这取决于配置和场景。
Properties ASP.Net Web API WCF
--------------------------------------------------------------------------------------------------
End point (mainly) Http based SOAP based
Service Type Front End Back-end
Support caching, compression, versioning No
Framework ASP.net WCF
Orientation Resource Oriented Service Oriented
Transports http http, tcp, MSMQ, Named pipe
Message pattern Request reply request Reply, one way, duplex
Configuration overhead Less Much
Security lesser than WCF (web standard security) Very high (WS-I standard)
Hosting IIS IIS, Windows Service, Self hosting
Performance Fast A bit slower than Web API
In use from .NET 4.0 .NET 3.5
注:数据不只是个人观点,也有其他官方网站的数据。
WCF会给你很多开箱即用的东西,它甚至是任何东西都无法比拟的。除非您想自己实现(举几个例子)身份验证、授权、加密、排队、节流、可靠消息传递、日志记录、会话等等。WCF不仅仅是web服务;WCF是面向SOA的开发平台。