当前位置 : 主页 > 网页制作 > Nodejs >

比一比 WebService和WCF

来源:互联网 收集:自由互联 发布时间:2021-06-24
 通过做项目,对WCF有了一个全新的认识。那么他和WebService又有什么区别,他俩哪个更好呢?应该是各有各的好处吧。 什么是WCF? .NET平台下的框架产品,由微软开发的一系列支持


   通过做项目,对WCF有了一个全新的认识。那么他和WebService又有什么区别,他俩哪个更好呢?应该是各有各的好处吧。

什么是WCF?

    .NET平台下的框架产品,由微软开发的一系列支持数据通信的应用程序框架,是Windows平台上开发分布式应用最佳的实践方式。
   简而言之,就是为构建面向服务的应用提供的分布式编程框架,使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。

    WCF的基本概念是以契约来定义双方沟通的协议,合约必须要以接口的方式来体现,实际的服务代码必须要由这些合约接口派生并实现。

WCF的体系架构:

    契约:契约属于一个服务公开接口的一部分吗,一个服务的契约,定义了服务端公开的方法,使用的传输协议,可访问的地址传输的消息格式等内容。

    服务运行:服务运行方面定义了服务在运行时的具体行为。

    消息:消息方面包含了消息的传输方式、消息的编码与解码。消息方面的内容基本属于服务边界以内的具体实现。具体的传递实现,必须符合在契约中定义的绑定协议。

    激活和宿主:一个WCF服务需要在一个可运行的程序中寄宿,常用的寄宿方式包括自寄宿、IIS寄宿、WAS、Windows服务,COM+组件等。

    ServiceContract:包括ServiceContract和OperationContract,ServiceContract用于类或者结构上,用于指示WCF此类或者结构能够被远程调用;OperationContract用于类中的方法上,用于指示WCF该方法可被远程调用。


[csharp] view plain copy print ?
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">[ServiceContract]  
  2.     public interface IBasicOrganizationService  
  3.     {  
  4.         #region QueryAllOrganization-机构信息查询-赵亚盟-2015年5月19日20:17:28  
  5.         [OperationContract]  
  6.         List<BasicOrganizationViewModel> QueryAllOrganization();  
  7.         #endregion  
  8.   #endregion  
  9.     }</span>  


     DataContract:分为DataContract和DataMember,DataContract用于类或者结构上,指示WCF此类或者结构能够被序列化或者传输,也可以使用[Seralizable]代替;DataMember只能用在类或者结构的属性或者字段上,指示WCF该属性或者字段能够被序列化传输。

[csharp] view plain copy print ?
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">[Classes("职务")]  
  2.     [DataContract]  
  3.     public class  BasicJobViewModel  
  4.     {         
  5.         [Colum("职务代码", DbType = DbType.String)]  
  6.         [DataMember]  
  7.         [DisplayName("代码")]  
  8.         public string JobCode { getset; }  
  9.     }  
  10. </span>  


    FaultContract:错误契约,默认情况下,服务抛出的异常均以FaultException类型传递到客户端,通过它列出服务能够抛出的错误类型。

    MessageContract:消息契约,它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。


什么是WebService?

    平台独立的、低耦合的、自包含的、基于可编程的Web的应用程序,可使用开放的XML标准来描述、发布、协调和配置这些应用程序,用于开发分布式的互操作性应用程序。

    简而言之:通过访问和使用远程Web服务可以访问不同系统中的数据。在使用时,通过Web服务Web应用程序不仅可以共享数据,还可以调用其他应用程序生成的数据,而不用考虑其他应用程序是如何生成这些数据的。

    特点:开放性、跨平台性;返回数据而不是返回页面。

    总结:使用Web服务能够实现数据重用和软件重用,这为建立松散偶合型的分布式系统提供了方便,实现Web服务需要HTTP、SMTP、SOAP、WSDL和UDDI等协议的支持;建立WCF服务需要建立服务定义文件、服务接口文件和服务逻辑处理文件。在使用WCF服务时,需要首先添加服务引用,再应用到Web窗体中

网友评论