WCF必知必会以及与Webapi的区别
快速阅读
介绍wcf中的信息交换模式MEP以及数据在传输过程中的序列化,endpont的介绍和wcf的三种实例模式以及安全模式 以及和Webapi的简单对比
wcf介绍
支持跨平台,多种协议 tcp, named pipes, HTTP, HTTPS, 消息队列MSMQ
支持部署在IIS,应用程序或windows服务等
配置比起比较麻烦,定义各种协议,契约,以及行为。
HTTP协议与TCP协议的比较 TCP对应于传输层 一般流媒体用的多。
http是对应于应用层,是建立在tcp基础之上。http连接是会选建立tcp连接,请求完成以后,断开与tcp的连接 。是一种无状态的连接 ,网页的请求服务一般会用http连接
信息交换模式MEP 包括单工通信,双工通信和请求应答
- 单工通信:只发送不接收。比如告诉消息让你排队。不希望接收到消息
- 双工通信:客户端和服务端都可以发送和接收。比如发布订阅模式就是采用双工。
- 请求应答:用的最多,客户端发送请求,同步等待返回结果 。
- 类上加 [Serializable] 表示使用的Soap序列化传输,
- 类上加【XmlSerializeFormat】,字段上加[XmlElement,XmlAttribute]表示使用的是xml序列化。如果model是第三方提供的,可以用这种方式传输[XmlSerializeFormat]
- 类上加Datacontract,字段上加DataMember表示使用的是DataContract序列化,这种序列化比xmlserialize快,
- DataContractJsonSerializer 也支持json序列化。对接收到的数据直接调用DataContractJsonSerializer转为json
wcf的实例模式
- Per call :每次调用都会创建一个实例。能有效利用内存,但需要特别手段维护Session
- Per session :每个用户的整个会话期建立一个session
- Single:单例模式,所有用户共享一个session
传输层安全
和消息层安全
https://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html
webapi
- 可以把服务暴露给一系列客户端,包括浏览器,手机和平板
- 可以使用http所有特征,如URI,request/response header.
- 可以支持多种数据格式 xml, json, text
如何选择
如果应用需要支付 消息队列和全双工通信则必须要用wcf ,
但如果要用到http的一些特征,比如request, response,及多不同客户端时需要用到webapi .
友情提示
我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。
文章图片
【WCF必知必会以及与Webapi的区别】
推荐阅读
- 年薪30万的Java架构师必会的springboot面试题
- (Android面试必知必会系列)Android事件分发
- Python开发者必知的13个Python|Python开发者必知的13个Python GUI库(转)
- [30天蜕变之路]社群创业必知的降龙十八掌
- 002 Linux 文件与目录命令的必会姿势
- json虽然简单,但这些细节你未必知道
- JS必会常用知识点
- 测试小白入门必知必会的8个测试工具
- 日精进3月19日
- 拓展欧几里得算法|青蛙的约会【拓展欧几里得算法】【详细思路以及推导过程】【萌新必会系列】