快速阅读

介绍wcf中的信息交换模式MEP以及数据在传输过程中的序列化,endpont的介绍和wcf的三种实例模式以及安全模式 以及和Webapi的简单对比。

wcf介绍

支持跨平台。

支持多种协议 tcp, named pipes, HTTP, HTTPS, 消息队列MSMQ

支持部署在IIS,应用程序或windows服务等

配置比起比较麻烦,定义各种协议,契约,以及行为。

HTTP协议与TCP协议的比较

TCP对应于传输层 一般流媒体用的多。

http是对应于应用层,是建立在tcp基础之上。 http连接是会选建立tcp连接,请求完成以后,断开与tcp的连接 。是一种无状态的连接 ,网页的请求服务一般会用http连接

信息交换模式MEP

包括单工通信,双工通信和请求应答

  1. 单工通信:只发送不接收。 比如告诉消息让你排队。不希望接收到消息

  2. 双工通信:客户端和服务端都可以发送和接收。比如发布订阅模式就是采用双工。

  3. 请求应答:用的最多,客户端发送请求,同步等待返回结果 。

数据序列化

数据要序列化以后才能传输,所以传输的数据必须先序列化以才能传输

  1. 类上加 [Serializable] 表示使用的Soap序列化传输,

  2. 类上加【XmlSerializeFormat】,字段上加[XmlElement,XmlAttribute]表示使用的是xml序列化。如果model是第三方提供的,可以用这种方式传输[XmlSerializeFormat]

  3. 类上加Datacontract,字段上加DataMember表示使用的是DataContract序列化,这种序列化比xmlserialize快,

  4. DataContractJsonSerializer 也支持json序列化。 对接收到的数据直接调用DataContractJsonSerializer转为json

Endpoint

客户端与服务端通过Endpoint进行交互 ,Endpoint的三要素ABC, Address表示服务器地址,Binding表示选择哪种传输的协议(TCP,http,ssl, soap)Contract契约(服务、操作、数据Contract)表示消息包含的内容 以及信息交换模式(one-way单工模式, duplex 双工械, request/reply请求响应模式)

wcf的实例模式

  1. Per call :每次调用都会创建一个实例。能有效利用内存,但需要特别手段维护Session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.Percall)]
  2. Per session :每个用户的整个会话期建立一个session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
  3. Single:单例模式,所有用户共享一个session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

wcf安全模式

主要是传输安全,包括

传输层安全

和消息层安全

https://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html

webapi

  1. 可以把服务暴露给一系列客户端,包括浏览器,手机和平板
  2. 可以使用http所有特征,如URI,request/response header.
  3. 可以支持多种数据格式 xml, json, text

如何选择

如果应用需要支付 消息队列和全双工通信则必须要用wcf ,

但如果要用到http的一些特征,比如request, response, 及多不同客户端时需要用到webapi .

友情提示

​ 我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。

wcf必知必会以及与Webapi的区别的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  3. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  4. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  5. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  8. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  9. 0005 《SQL必知必会》笔记01-SELECT语句

    1.SELECT基本语句: SELECT 字段名1,···,字段名n FROM 表名 2.检索所有字段,用"*"替换字段名,这会导致效率低下 SELECT * FROM 表名; 3 ...

  10. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

随机推荐

  1. excel2016打开为空白界面解决办法

    前言 excel2016打开文件为空白的界面,明显不正常. 解决方法 https://blog.csdn.net/b2345012/article/details/94134401 以上.

  2. C++之同名覆盖、多态

    一.同名覆盖引发的问题 父子间的赋值兼容--子类对象可以当作父类对象使用(兼容性) 1.子类对象可以直接赋值给父类对象 2.子类对象可以直接初始化父类对象 3.父类指针可以指向子类对象 4.父类引用可 ...

  3. (critical) chassis-frontend.c:122: Failed to get log directory, please set by --log-path

    Atlas MySQL 读写分离 [root@localhost ~]# /usr/local/mysql-proxy/bin/mysql-proxy test start2019-05-07 10: ...

  4. oracle 删除表空间

    第一步,删除表空间前如果忘记表空间名称和用户名,可以通过以下命令进行查询. ---查找用户select * from dba_users; --查找工作空间的路径select * from dba_d ...

  5. mybatis中对数据表操作的四种语法

    查询数据(select) select...from...where... 如:查询学生表中学号为某数的学生的全部信息 select * from stu where id=#{id} 增加数据(in ...

  6. 用java刷剑指offer(数字在排序数组中出现的次数)

    题目描述 统计一个数字在排序数组中出现的次数. 牛客网链接 java代码 //看见有序就用二分法 public class Solution { public int GetNumberOfK(int ...

  7. 16寸屏苹果MacBook Pro悄悄上市,售价18999 元起步

    传闻了半年之久的16寸屏苹果MacBook Pro于11月13日夜晚终于上线,15寸的机身16寸的屏幕,相比于此前的13寸和15寸MacBook Pro,新品搭配了更大的屏幕.更高性能的处理器以及更大 ...

  8. linux文档与目录结构

    Linux文件系统结构 本文转自 https://www.cnblogs.com/pyyu/p/9213237.html Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“ ...

  9. Bias vs. Variance(1)--diagnosing bias vs. variance

    我们的函数是有high bias problem(underfitting problem)还是 high variance problem(overfitting problem),区分它们很得要, ...

  10. HDFS集群中DataNode的上线与下线

    在HDFS集群的运维过程中,肯定会遇到DataNode的新增和删除,即上线与下线.这篇文章就详细讲解下DataNode的上线和下线的过程. 背景 在我们的微职位视频课程中,我们已经安装了3个节点的HD ...