首页 > 其他分享 >WCF必知必会以及与Webapi的区别

WCF必知必会以及与Webapi的区别

时间:2022-11-25 17:09:34浏览次数:53  
标签:Webapi http 必知 wcf 模式 传输 WCF 序列化 上加


快速阅读

介绍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
  2. Per session :每个用户的整个会话期建立一个session
  3. Single:单例模式,所有用户共享一个session

wcf安全模式

主要是传输安全,包括

传输层安全 <security mode="Transport">

和消息层安全<security mode="Message">


webapi

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


如何选择

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

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


友情提示

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

WCF必知必会以及与Webapi的区别_序列化



标签:Webapi,http,必知,wcf,模式,传输,WCF,序列化,上加
From: https://blog.51cto.com/u_15834343/5887032

相关文章

  • c# asp.net webapi 配置 含日期带T问题
    1.WebApiConfigconfig.Formatters.JsonFormatter.SerializerSettings.Converters.Insert(0,newJsonDateTimeConverter());publicstaticclass......
  • C#上位机之—Winform之间实现WCF通讯简单示例
    WCF是微软弄的一组数据通信的开发接口,即windows通讯接口。和TCP类似需要IP地址和端口号,服务端提供一些函数接口,客户端可进行调用,支持多个客户端。不太懂理论,直接看应用吧。......
  • 根据MediatR的Contract Messages自动生成Minimal WebApi接口
    大家好,我是失业在家,正在找工作的博主Jerry。今天给大家介绍一个能大大减少ASP.NetMinimalWebApi编码量的方法。我们一般会把微服务的VO和DTO封装成消息类,并作为WebApi的......
  • 【SQL必知必会】-12月
    了解Mysql一般叫DBMSDataBaseManagementSystem数据库管理系统表table:一个结构化的文件。来存储数据。一个数据库中表名是唯一的。列column:存储表中的某一部......
  • 前端项目通过‘URL 重写’部署在 IIS 中,访问 WebAPI 接口
    〇、前言在前端项目开发时,我们可以通过配置代理proxy来访问本地或者是远程接口,但是部署后代理就失效了。如果项目部署在IIS上,就没法去对应到指定接口,此时就需要IIS......
  • SQLSERVER调用WebAPI和WebService
    原文:https://blog.csdn.net/qq243348167/article/details/124243810第一步需开启组件开启组件sp_configure'showadvancedoptions',1;GORECONFIGURE;GOsp_confi......
  • 运维必知必会的 Kubectl 命令总结,收藏好了~
    kubectl常用命令指南Kubectl命令是操作kubernetes集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握Kubectl自动补全#setupautocompleteinbash,ba......
  • 1.1 创建一个WCF应用程序服务
    第一步:引入System.ServiceModel.dll第二步定义一个WCF接口://定义接口[ServiceContract]interfaceIGetInfo{[OperationContract]D......
  • 24 道必知必会的 Shell 脚本面试题
    虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到shell脚本的问题,它有助于你在工作环境中自动完成很多任务。如下是一些面试......
  • WCF的简单实例(手写代码实现)--服务端
    1、引用:usingSystem.ServiceModel;usingSystem.ServiceModel.Description;2、申明接口///这是接口[ServiceContract(Namespace="http://Microsoft.ServiceModel.Sampl......