WCF-WebService-WebApi知识点总结,参照网上现有的,以及自己整理的,不断更新

1.WebServices

     WebServices提供简历分布式应用的平台的技术,使得运行在不同操作系统和不同设备上的软件,或者不同程序语言以及不同设计框架下的开发出来的软件,能够利用这一技术实现实现分布式计算的目的。WebServices就是一组函数库,部署在Web上的应用程序组件。WebServices遵守SOA的标准协议,服务端收到请求后返回的结果,使用标准的SOAP协议组织好数据,返回一个类似XML结构的流。WebServices只能运行在IIS上,如今使用的较少了。其特点:

     1) WebServices是自包含的。即在客户端不需要附件任何软件,只要客户机支持HTTP和XML就可以;

     2) WebServices是自我描述的。在客户端和服务端都不需要知道除了请求和相应消息的格式和内容外的任何实现。

     3) WebServices是跨平台和跨语言的。客户端和服务端均可以在不同的平台和语言环境中实现,同时,不必为支持WebService而改变现有的代码。

     4) WebServices是基于开放和标准的。XML和HTTP是WebService的主要技术基础,而XML和HTTP早就成了业内标准。

     5) WebServices是动态的。

     6) WebServices是可以组合的。可以通过一个WebServices访问另一个WebServices来达到组合的目的。通过组合WebServices边可以将简单的WebServices聚合成为实现更多复杂功能的复杂的服务。

     7) WebServices是松耦合的。他完全解耦了客户端和服务端。

     8) WebServices提供编程访问的能力。可以通过编写程序来方位Web服务。

     9) WebService是基于成熟的技术上构建的。XML,HTTP。

     10) WebServices提供打包现有应用程序的能力。

     11) WebServices 通过网络进行发布,查找和使用。

 

WebServices和HttpHandle

asmx文件是WebServices,ashx文件是一个服务端处理请求的简单处理程序。但asmx比ashx慢很多,主要是由于WebServices基于SOAP,服务端处理完请求返回的结果需要使用SOAP组织好数据,以类似于XML文档的结构返回流。

asmx:

public class WebServiceTest:System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWord()
    {
           return "HelloWord!";
    }    
}

ashx:

public class HandleTest:IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType="text/plain";      
        context.Response.Write("HelloWorld!");
    } 
}