Web Service和WCF的到底有什么区别

Web Service和WCF的到底有什么区别,第1张

Web Service是早期的技术实现了,也是soap的东西,采用的主要是http协议,假如是在C#上开发的话,需要寄宿在IIS上来实现。

WCF的话是相对较新的技术,里面的basichttpbinding可以跟以前的ws进行通信,并且集成了大部分的通信协议(几种http协议的实现以及netTcp实现、msmq、命名管道等实现),另外寄宿的宿主可以是命令行控制台、IIS、桌面程序等。

差别的话,感觉有这以下几点[针对C#来说的]。

ws的话,编程模型没有wcf的那么好,具体的实现差别建议百度下,个人觉得wcf比较好。wcf可以用契约的接口方式来进行实现,而ws的话主要是通过继承WebService的类来实现的,方法上添加WebMethod特性,WCF的话是通过服务契约来声明(可以是接口也可以是类对象)

ws的话通用性比较强,跟java等ws也可以进行互相通信,然后假如是wcf发布的服务,除了basicHttpBinding这种绑定之外,其余的几种绑定基本上不能作为互相通信。例如命名管道跟netTcp都是,值得说的是这里的netTcp跟原生的tcp是不一样的,内部实现上参考tcp的可靠连接机制进行了应用层的一套实现。

另外一点就是服务引用跟web引用上的,这个严格来说不能属于两者的区别,只是net版本的区别,主要是针对客户端对服务端发布好的服务进行的引用,服务引用生成的时候,会在配置文件上存在一份配置项,可以进行ABC终结点的配置,假如是web引用的话,会在setting中添加上一个硬编码的地址。建议用服务引用。

还有一个就是客户端调用服务端开发的时候,webservice的话,基本上只能通过服务端发布的地址来进行引用[应用的方式可以参考点3],或者通过服务端提供的wsdl文件来进行引用(该种方式一般比较少,因为需要提供文件,而不是通过公开的方式来进行接口的提供,无法应对服务变更后发布问题,但是确实有这个情况的存在)。而wcf的话,还存在可以通过提供契约文件(就是声明了ServiceContract的那个接口文件)来进行服务的调用。

在接口层面的话,凡是IList<class T>以及IDictionary<class T>这一类的泛型实现都会在进行服务引用的时候,都会转换为数组的,例如void F(IList<int>)会在引用后成为void F(int[])这种方式,而才用点4提供的契约文件的话就能保持方法的原始声明。

个人建议的话,假如是新开发的系统基本上都才用wcf比较好,一个是接口的思想,一个是假如需要转换为其他协议的话可以比较方便,只需要通过配置文件修改下就可以[当前前提是没有用到特定协议的特定属性,例如服务回调,有些协议是不支持双向通信的]。而且也需要考虑发布的服务是否需要公开给别的语言进行通信。

另外说的性能在下降的话,大概说明下:

基本上针对应用的开发都是基于socket的开发,传统的socket开发的话,是需要自己去实现整个通信框架的,包括多线程处理,IOCP等的实现[基本上net的异步通信模型在内部实现都会绑定好,IOCP是一个异步模型,自行百度],二进制流的编码处理[网络传输都是通过二进制的,例如utf8到二进制的转换],tcp无边界消息的处理[udp的话没有这个,但是包体的大小也是有限制],通信协议的约定处理[例如ws跟wcf是采用soap这种,各种ws的约定,例如多少个字节表示数据流的长度、数据的检验,还是数据加密位,也包括数据的位移处理],数据上抛模型跟数据回复模型[接受到数据后是需要上抛给业务层去进行处理的,然后也需要回复给客户端,不过也不一定是这样,看需求],还有各种针对性的处理,例如客户端socket的保存[有可能对长期不适用的套接字要进行自动断开的业务]。类似wcf这种东西的话,还有序列化跟反序列化的情况[序列化跟反序列化是性能开销比较大的,例如序列化是通过反射来实现的,反射又是跟程序集的元数据有关的,属于运行时行为],假如是自己实现tcp通信模型,就不一定会有序列化跟反序列化的通信模型了,而且wcf为了让通信跟本地调用那样以及标准的方面,字节流都是比较大的,这里也会增加通信的带宽好比自定义的协议4个字节的数据包长度+1个字节的加密压缩位+N个数据包位+X个字节的检验位,这种的话实际用到的字节就比较少了,因为在数据包里面,可以会用2个字节表示协议头,例如ox0A表示登录接口,再用4个字节表示登录名,4个字节表示密码等。以上是简单的对socket跟wcf\ws等协议的差别说明。socket跟wcf\ws对比的话,socket性能是最高的,高并发高响应的时候,这里是有差距的,技术上的话,socket需要更加多的技术支持[开发周期长,对人员要求高],而wcf在应用层面上基本无难度,就是一些配置,出现问题也大部分可以通过百度来处理。另外一个就是托管语言本身的问题,GC这块的,GC回收的时候,是需要挂起堆栈上的线程的,而且GC的线程优先级比自己所能创建的所有线程的优先级都要高,等GC执行完毕的时候才能去执行自己的线程,wcf在堆对象上申请的空间也会更加多,自然导致GC会受到的概率也会更加大,这里也会可能导致wcf性能不如socket。基本上来说,C#的类都是引用对象,都是堆申请的,在引用计数超出的时候,都会被下一个GC[]操作去回收,真是个奇葩的事情。

总之,在ws跟wcf之间选择的话,个人觉得优先选择wcf好点。

如果是对性能要求较高[高并发等],或者是长连接再或者是需要用到UDP这种的话,就基本上无法用wcf跟ws这种了,wcf是没有udp协议的,http协议也只是在tcp协议下的上层协议,底层发送的数据包跟实作是不通的。另外对于长连接,虽然wcf提供了类似回调这种情况机制,只是个人不推荐使用在这种长连接的场合下。

电缆型号VV39-44表示:

聚氯乙烯绝缘聚氯乙烯护套细钢丝铠装动力电缆

4芯,单芯界面个4平方毫米

39---是表示细钢丝铠装

VV---铜芯聚氯乙烯绝缘聚氯乙烯护套电缆

wcf手办的尺寸5~6厘米左右。

WCF是海贼周边的一个系列。手办指未涂装树脂模件套件,是收藏模型的一种,也是日本动漫周边中的一种,英文原文为Garage Kits(GK),是套装模件(Model Kits)的意思。

  以电线为例,WC的敷设方式是暗敷于墙内,FC的敷设方式是敷于地板下。

 电线是指芯数少、产品直径小、结构简单的产品。用于电力、通信及相关传输用途的材料。电线是由一根或几根柔软的导线组成,外面包以轻软的护层;电缆是由一根或几根绝缘包导线组成,外面再包以金属或橡皮制的坚韧外层。电力系统采用的电线电缆产品主要有架空裸电线、汇流排(母线)、电力电缆(塑料线缆、油纸力缆(基本被塑料电力电缆代替)、橡套线缆、架空绝缘电缆)、分支电缆(取代部分母线)、电磁线以及电力设备用电气装备电线电缆等。电线电缆的衍生/新产品主要是因应用场合、应用要求不同及装备的方便性和降低装备成本等的要求,而采用新材料、特殊材料、或改变产品结构、或提高工艺要求、或将不同品种的产品进行组合而产生。

directx只是一套图形接口,没人直接用那个写游戏的,写游戏用的是游戏引擎,例如cryengine,unreal,unity等。

总体来说,C#能做除了系统驱动以外的任何东西。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/4111456.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-04-13
下一篇2024-04-13

随机推荐

  • 混合肌精华液推荐8款必推精华液

    在这个炎热的夏天,很容易缺水和缺水。混合肌的T字部位容易出油,两颊会比较干,所以皮肤会经常出现油水不平衡!很多混合肌在选择护肤品的时候,经常会面临“想改善却不知道从何下手”“哪个不会太油或者太干”之类的恼人问题!面对琳琅满目的精华液,你不知

    2024-04-15
    48500
  • 舒耐 妮维雅 曼秀雷敦止汗,哪个更好?

    舒耐 最好 毕竟是最专业的止汗露 就是比别的贵点如果你在家用 就用喷雾的 卫生 不会污染到里面如果想外出随时都用建议用走珠的 因为喷雾必须脱掉衣服你不可能在公共卫生间脱衣服用 不如走珠的方便用过一些,我总结一下吧雅芳和妮维雅这些

    2024-04-15
    39800
  • 妮维雅在中国有多少家工厂

    妮维雅在中国有53家工厂。总部位于德国汉堡的bdf公司在全世界拥有79家分公司及53家授权制造公司。业务遍布欧洲,美洲及亚洲地区,员工近2万人。nivea是美国商业周刊评选的全球最具有商业价值的100个品牌之一,也是ac尼尔森市调公司评选的

    2024-04-15
    53300
  • 妮维雅小蓝罐好用吗 妮维雅小蓝罐的4种用法

    妮维雅小蓝罐是一款非常经典的面霜,久经不衰,这款面霜非常的平价,50元不到,好大一罐,可以用很久,而且这个面霜的用法很多,可以护手,可以当身体乳还可以当宝宝霜。妮维雅小蓝罐好用吗妮维雅的这款面霜应该是平价面霜届的网红了。红也红了很多

    2024-04-15
    47200
  • 用什么化妆脸会发亮

    用什么化妆脸会发亮  用什么化妆脸会发亮,爱美是人的天性,在这个看脸的时代,很多女生都会通过化妆来修饰自己,而正是因为如此市面上的化妆品种类非常多,那么用什么化妆脸会发亮呢?用什么化妆脸会发亮1  化妆

    2024-04-15
    48400
  • 妮维雅630一瓶可以用多久

    2个星期。妮维雅630一瓶可以用2个星期,连续使用一个月效果会明显,妮维雅德国拜尔斯道夫公司所有的大型全球护肤品与身体护理品品牌,其发展时间久,发展经验丰富,旨在满足消费者的不同需求。妮维雅630淡斑精华和科颜氏精华相比科颜氏精华好用。妮维

    2024-04-15
    51400
  • 长安和伊思特瓷砖哪个相对比较好,都是佛山产的吗?

    长安瓷砖还是比较有名,具体哪里产的就不要听销售人员给你讲解的了,最好看他们的包装上面的资料。还有就是需要选大厂,大品牌的瓷砖,你想一想你装房子管得最久的是什么?肯定是瓷砖、涂料、门窗那些硬装。像蒙娜丽莎、马可波罗、威尼斯商人瓷砖、冠珠这些都

    2024-04-15
    43300

发表评论

登录后才能评论
保存