日期:2014-05-16  浏览次数:20390 次

webapi、wcf
最近在看webapi,不知道有人用这东西没,能否给点心得体会,在各种应用场景与webservice、wcf德使用选择,它的优越性在哪?
------解决方案--------------------
webapi有很多特点(我不想用优点这个词),比如说restful,支持路由,简单,类似mvc controller/action的代码编写方式,灵活的托管方式,和web的集成等等。
------解决方案--------------------
http://www.cnblogs.com/developersupport/p/aspnet-webapi.html

Web API的主要功能

1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

    通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

2. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

3. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

4. 原生支持OData。

5. 支持Self-host或者IIS host。

6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

WebApi是http的~

Wcf还可以包括其他协议,还有很多传输模式(长链接,双工~)
------解决方案--------------------
引用:
他对于webservice 优势在哪?为什么微软有了wcf又搞出这一套东西?


因为之前的WCF的沉重的RPC调用模式和发现模式早就过时了,世界早在3、4年前就向轻量级的http服务访问协议转变了,而WCF这个东西必须延长其生命、保证以前的使用WCF的人的一些利益,因此WCF内部机制必须自动降级变成轻量级的。

我们做了一个简单的、基于地图的领导桌面系统,由客户(企业)运行在他们的内部网络上。他们自己的光纤的网络遍布这个城市几百公里,按理说比互联网家用ADSL接入方式快多了。而实际上,使用WCF的方式开发之后,发现经常有“查询超时”问题。而且需要符合一大堆模式,每一次程序大的改动都需要花费好几分钟时间重新生成中间代码、也容易出错。

而改为简单的http post请求,使用简单的的json.net对数据进行序列化、反序列化,就再也没有“超时”问题了,而且整体通讯速度有了明显提高。特别是,以后再改动基本上不花时间。我们自己做的事情(几十行框架代码)基本上跟webapi做的是一样的。

WCF繁琐、冗余、慢、沉重。
------解决方案--------------------
http://blog.csdn.net/chinacsharper/article/details/21256569
http://blog.csdn.net/chinacsharper/article/details/21333311