Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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
C# WCF vs WEb api vs新电子商务网站的WEb服务_C#_Android_Asp.net_Wcf_Asp.net Web Api - Fatal编程技术网

C# WCF vs WEb api vs新电子商务网站的WEb服务

C# WCF vs WEb api vs新电子商务网站的WEb服务,c#,android,asp.net,wcf,asp.net-web-api,C#,Android,Asp.net,Wcf,Asp.net Web Api,我正在用MVC和sql server作为数据库创建一个新的电子商务应用程序。我想用实体框架来实现这个目标。我对数据访问层的选择感到困惑。在WCF、Web api和Web服务中,我应该使用哪一种。将来我们可能需要android和IOS应用程序。我认为webapi将是最好的选择 我试图找出WebAPI和WCF之间的区别,我发现的是。 新的ASP.NET Web API是以前的WCF Web API项目的延续(尽管一些概念已经改变) WCF最初是为了支持基于SOAP的服务而创建的。对于更简单的REST

我正在用MVC和sql server作为数据库创建一个新的电子商务应用程序。我想用实体框架来实现这个目标。我对数据访问层的选择感到困惑。在WCF、Web api和Web服务中,我应该使用哪一种。将来我们可能需要android和IOS应用程序。我认为webapi将是最好的选择

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

WCF最初是为了支持基于SOAP的服务而创建的。对于更简单的RESTful或RPCish服务(想想像jQuery这样的客户端),ASP.NETWebAPI应该是不错的选择。 关于Rest、TCP、FTP、soap、Http的链接有上千个。 但我没有找到我的答案。我仍然不知道哪一个能解决我的问题。 还有一件事,如果我选择WebAPI,实体框架可以与WebAPI集成。我是网络新手。任何帮助都会很有帮助


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

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

如果您需要将少量数据推/拉至“客户端”(浏览器、android、iphone),那么WebApi是最佳选择

一个特性是,WebApi将通过请求的设置方式(在“header”中)为您提供xml或json

使用WCF,您必须为json和xml“编写代码”,而这并不是非常简单的。Aka,您必须在服务方法(ABC的“契约”)上添加属性,以表示“此方法将发回xml”或“此方法将发回json”

您的WebApi层将提供服务。这通常意味着提供json数据或使用json数据。MS已经为您解决了“管道”问题,因此在服务方面,这种情况会自动神奇地发生

我从2005年就开始编写这两个代码(好吧,2005年和之后的WCF,后来是WebApi)

WebApi更容易处理,特别是对于初学者

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

对于ORM来说,这完全发生在“服务器端”,因此您可以选择您想要的任何一个。 我会选择Poco/代码优先/实体框架或NHibernate(用于“完整”ORM)或Dapper(用于微型ORM)。使用哪种ORM本身就是一个完整的讨论。但是快速的建议,不要随意选择一个,做一些研究。搜索“Entity Framework vs NHiberate”或“Entity Framework vs ADO.NET”或“Dapper vs NHiberate”之类的内容(你会得到演练,任何组合,有时你会找到一个比较,这三者加上其他内容

下面是一个关于auto magic wire up的小解释,您不需要在服务器端手工解析json

这里呢

除了我的观点之外,下面是一篇Microsoft比较文章:

引述如下:


使用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。

我希望您可以在stackoverflow中发布的另一个问题中得到答案,这取决于您的选择您将要创建您的核心api所需要和期望的内容。您可以使用WCF获得REST和Web服务功能,并且WCF是一个可以进行深度定制的平台。Web api和Web服务比WCF更轻,但您应该根据自己的需要来决定。实体框架与Web api和WCF无关。如果您需要支持SOAP和REST,使用WCF。否则,使用Web API。如果您不熟悉Web API,将指导您逐步构建Web API(注意:它使用NHibernate作为数据访问层,但您可以轻松地将其更改为实体框架)@Win谢谢你的帮助。你能帮我了解一下Soap和Rest的基本区别吗。我的主要观点是应用程序的基本要求。如何决定我需要Soap还是Rest,或者两者都需要。@cihanuigun谢谢你的帮助,但是你能帮我弄清楚,如果我选择Web api与WCF相比,我会错过哪些功能吗?因为我擅长使用Web api和更喜欢WCF。比我想得更多的人: