新电子商务网站的 WCF vs WEB api vs Web 服务 [重复]

Posted

技术标签:

【中文标题】新电子商务网站的 WCF vs WEB api vs Web 服务 [重复]【英文标题】:WCF vs WEb api vs Web services for new ecommerce website [duplicate] 【发布时间】:2016-06-05 09:33:30 【问题描述】:

我在 MVC 和 sql server 中创建一个新的电子商务应用程序作为数据库。我想使用实体框架来做同样的事情。我在选择我的数据访问层时感到困惑。我应该在 WCF、Web api 和 Web 服务中使用哪一个。将来我们可能需要 androidios 应用程序。我认为 Web api 将是最好的选择。

我试图找出 web api 和 WCF 之间的区别,我发现的是。 新的 ASP.NET Web API 是之前 WCF Web API 项目的延续(尽管一些概念已经改变)。

WCF 最初是为了启用基于 SOAP 的服务而创建的。对于更简单的 RESTful 或 RPCish 服务(想想像 jQuery 这样的客户端),ASP.NET Web API 应该是不错的选择。 有数千个链接讲述Rest、TCP、FTP、soap、Http。 但是我没有在哪里找到我的答案。我仍然很困惑哪一个可以解决我的问题。 如果我选择Web api,还有一件事,实体框架可以与Web api集成。我是点网新手。任何帮助都会非常有帮助。

编辑: @win 感谢您的帮助。我想知道,如何决定我应该选择哪一个,RESTFull(Web api) 或 WCF(Soap)。应用程序中的哪些因素决定使用哪一个。

【问题讨论】:

我希望你能在 *** here987654321@ 这取决于您将要创建什么,您需要什么以及对核心 api 的期望。您可以使用 WCF 获得 REST 和 Web 服务功能,而且 WCF 是一个可以进行深度自定义的平台。 Web Api 和 Web 服务比 WCF 更轻量,但您应该根据自己的需要来决定。 Entity FrameworkWeb APIWCF 无关。如果您需要同时支持 SOAPREST,请使用 WCF。否则,请使用 Web API。如果您是 Web API 新手,ASP.NET Web API 2: Building a REST Service from Start to Finish 将指导您逐步构建 Web API(注意:它使用 NHibernate 作为数据访问层,但您可以轻松将其更改为实体框架). @Win 感谢您的帮助。你能帮我了解肥皂和休息之间的基本区别吗?我的主要观点是申请的基本要求。如何决定我需要什么 SOAP 或 REST 或两者兼而有之。 @CihanUygun 感谢您的帮助,但是您能告诉我如果我选择 Web api 与 WCF 相比,我会错过哪些功能。因为我擅长 Web api,并且会更喜欢 WCF。 【参考方案1】:

WCF 提供了很多功能,但代价是疯狂的配置设置。疯疯癫癫。它涉及定义“ABC”、地址、绑定、合同。我总是告诉人们“使用 WCF:它是配置,而不是代码”。配置它的选项太多了。

如果您需要向“客户端”(浏览器、android、iphone)推送/拉取少量数据,那么 WebApi 是最好的选择。

一个功能,WebApi 将通过请求的设置方式(在“标头”中)为您提供 xml 或 json。

使用 WCF,您必须为 json 和 xml 或者/或/两者“编码”,这并不是非常简单的。又名,您必须在 Service-Methods(ABC 的“合同”)上添加属性来表示“此方法将发回 xml”或“此方法将发回 json”。

您的 WebApi 层将提供服务。这通常意味着提供 json 数据或使用 json 数据。 MS 已经为您处理好“管道”,所以在服务方面,这会自动发生。

自 2005 年以来,我都编写过代码(嗯,2005 年及之后的 WCF,然后是 WebApi)。

WebApi 更容易处理,尤其是对于初学者。

所以除非你有非常具体的理由使用 WCF,否则我会使用 WebApi。

就 ORM 而言,这完全发生在“服务器端”,因此您可以选择任何您想要的。 我会选择 Poco/Code-First/Entity-Framework 或 NHibernate(用于“完整”ORM)或 Dapper(用于微型 ORM)。使用哪个 ORM 本身就是一个完整的讨论。但是快速建议,不要随便选择一个,做一点研究。搜索诸如“Entity-Framework vs Nhiberate”或“Entity-Framework vs ADO.NET”或“Dapper vs Nhiberate”之类的东西(你会得到练习,任何组合,有时你会发现一个比较,这三个加上其他。

这里是关于自动魔法线的一点解释......你不是在服务器端手动解析 json。

http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/

这里

http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/

除了我的意见,这里有一篇微软比较文章:

https://msdn.microsoft.com/en-us/library/jj823172.aspx

和报价:

使用 WCF 创建可通过各种传输访问的可靠、安全的 Web 服务。使用 ASP.NET Web API 创建可从各种客户端访问的基于 HTTP 的服务。如果您正在创建和设计新的 REST 样式的服务,请使用 ASP.NET Web API。虽然 WCF 对编写 REST 风格的服务提供了一些支持,但 ASP.NET Web API 中对 REST 的支持更加完善,未来所有的 REST 功能改进都将在 ASP.NET Web API 中进行。如果您有现有的 WCF 服务并且想要公开其他 REST 端点,请使用 WCF 和 WebHttpBinding。

【讨论】:

比我想得更多的人:blogs.microsoft.co.il/idof/2012/03/05/…

以上是关于新电子商务网站的 WCF vs WEB api vs Web 服务 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Web Service vs WCF vs WCF REST vs Web API

WCF 服务与 ASP.NET Web Api

VS进程附加的使用

来自网站客户端脚本的 WCF RESTful 服务跨域访问

在 VS 2010 中更新 WCF 服务对 WebService 问题的引用

web api初学