webapi、webservice、一般处理程序(ashx)_大叔编程的博客-程序员ITS301_ashx webapi

技术标签: 架构  其他  

webapi用的是http协议,webservice用的是soap协议,webapi无状态,相对webservice更轻量级。

Web Service

1、它是基于SOAP协议的,数据格式是XML

2、只支持HTTP协议

3、它不是开源的,但可以被任意一个了解XML的人使用

4、它只能部署在IIS上

WCF

1、这个也是基于SOAP的,数据格式是XML

2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

3、WCF的主要问题是,它配置起来特别的繁琐

4、它不是开源的,但可以被任意一个了解XML的人使用

5、它可以部署应用程序中或者IIS上或者Windows服务中

WCF Rest

1、想使用WCF Rest service,你必须在WCF中使用webHttpBindings

2、它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词

3、要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求

4、使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate

5、它支持XML、JSON以及ATOM这些数据格式

Web API

1、这是一个简单的构建HTTP服务的新框架

2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

5、它可以部署在应用程序和IIS上

6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

WCF和WEB API我该选择哪个?

1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF

2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。

3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API

4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

ashx

个人理解,简单、复杂性低的接口用ashx

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/puhome1986/article/details/107060435

智能推荐

Postgresql 配置文件详解_cn_yaojin的博客-程序员ITS301

原文地址:http://www.cnblogs.com/zhaowenzhong/p/5667434.html如果要查看配置文件中的一些选项,则可以登录psql后 使用 命令来查看;show  选项名;show all;  #查看所有数据库参数的值  主要选项:选项 默认值 说明 是否优化 原因 max_connections 100...

CSS固定布局实战_shaonian1996的博客-程序员ITS301_商城布局 css样式实战

CSS固定布局实战详解目标:CSDN主页画面预览:1:2:网页解读:1:总体5个部分:头部,主体(左中右),尾部。2:主体的中部和右面又分为几小块。布局:1 头部:导航栏加搜索框。html:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>CSS3实战</ti..

浅谈树状数组_flinkstar的博客-程序员ITS301_浅谈树状数组的优化及扩展

时间戳对于区间更改和查询问题,之前我是一直用线段树解决的,这种结构真的很优美很强大,至于树状数组这个东西,我看到“树状数组能做的线段树都可以做,线段树能做的树状数组却做不了”类似的话以后就没当回事。 再往后是做过几道优化查询的问题,用线段树T了,改成树状数组过了,时间效率高出线段树数倍(丝毫不夸张,尽管复杂度相同),才开始关注这个结构,事实上线段树的常数是相当大的,如果题目只是优化查询,不涉及la

深度学习(三) 卷积神经网络入门与实践_阿阿阿安的博客-程序员ITS301_卷积神经网络实践

一.全卷积神经网络的弊端 在上章学习完神经网络基础后,几乎所有问题的输入都能够Resize处理一下后扔进全卷积神经网络中进行训练。在图像学习任务中,图像(多通道)这类(N*C*W*H)多维输入格式数据需要通过Resize展为(N*M)的M维数据送入全连接神经网络,这种做法非常的简单粗暴直接,当然也带来了一些问题:忽视了图像数据的结构信息:直接Resize的做法没有考虑图像数据中的结构信息,因为图象是多维的,存在着结构上的关系。比如图像中一般都存在着颜色过渡,相邻结构之间颜色域应该是相....

Jira+Wiki配置手册_weixin_30533797的博客-程序员ITS301

1、环境介绍系统服务IPCentos6.5byxf-jira-02172.16.1.932、环境准备[[email protected] ~]# chkconfig --level 2345 iptables off[[email protected] ~]...

VS2019中创建OpenDDS项目_-信仰_的博客-程序员ITS301_将opendds做成动态库

VS2019中创建OpenDDS项目1.新建VS项目2.添加编译头文件目录和编译需要的动态库1.添加头文件目录2. 添加动态链接库所需要的相关文件3.添加C++编程文件1.编译IDL文件2.将idl文件所在目录添加到项目头文件包含目录中3.编写OpenDDS数据发布者4.编写OpenDDS数据订阅者4测试运行1.新建VS项目项目名称自己命名即可,此处注意release/debug,32/64要与OpenDDS编译版本一致2.添加编译头文件目录和编译需要的动态库1.添加头文件目录打开项目属性性,

随便推点

Spring Cloud 和Spring Cloud Alibaba概述和比较(十三)_易雪寒的博客-程序员ITS301_springcloud还是springcloudalibaba

1、spring cloud概述SpringCloud是基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、

UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples._Yan456jie的博客-程序员ITS301_precision is ill-defined and being set to 0.0 due

# -*- coding: utf-8 -*-import jieba, osimport codecsfrom gensim import corpora, models, similaritiesfrom pprint import pprintfrom collections import defaultdictimport sysimport picklefrom src.

php读取dxf,UG导入导出Dwg,Dxf文件提示:转换未完成,网上说的方法都试了一遍没用怎么办?..._weixin_39664994的博客-程序员ITS301

这是因为导不出DWG/DXF文件的原因有多种,你找到的解决方案可能并不是你所在的问题,也有可能是你没有按解决方案中的做到位。你可以按以下几个原因排查:1、高版本NX软件,在导入DWG\DXF的时候,有个设置选项,要把它改成选择导入导出至【工作部件】,不要导入至【新部件】,有时软件默认就是导到新建部件的,造成DWG\DXF文件无法导入,这个虽然不是什么BUG,但却是一个常见的CAD文件无法输入的常见...

使用jsoncpp解析json数据(三)_jeremy505的博客-程序员ITS301_parsefromstream

知道了怎么处理字符串形式的json数据,下面看看将json数据写入文本以及从文本中读入进行处理。源码地址:https://github.com/jeremy505/jasoncpp-examples/blob/master/write_to_file.cpphttps://github.com/jeremy505/jasoncpp-examples/blob/master/read_from...

第五届蓝桥杯JavaB组第九题:地宫取宝_灰古的博客-程序员ITS301

第九题:地宫取宝X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。输入输入一行3个整数,用空格分开:n m k

PowerMockito测试方法内对象问题_独正己身的博客-程序员ITS301

当测试如下类时Class A { public boolean myMethod(someargs) { MyQueryClass query = new MyQueryClass(); Long id = query.getNextId(); // some more code }}Class MyQueryClass { .... public Long getNextId() { //lot of DB code, execute so

推荐文章

热门文章

相关标签