Asp .Net Web API及相关技术介绍课件.pptx
《Asp .Net Web API及相关技术介绍课件.pptx》由会员分享,可在线阅读,更多相关《Asp .Net Web API及相关技术介绍课件.pptx(85页珍藏版)》请在三一办公上搜索。
1、Asp.Net WebAPI 及相关技术介绍,2022/11/27,第1页,这个PPT涉及到的技术,本文讲的其实是Web服务技术发展史,共87多页,WebAPI在讲到第37页的时候才会出现,因为这个技术不是凭空产生的,它有着自己的演变进化的历史。我们要先弄清它从哪里来的?然后再说它能做什么事。这个PPT涉及到的技术名词有: XML-RPC,SOAP,REST, SOA Asp.Net WebForm,WebService, WCF Asp.Net WebAPI, Asp.Net MVC,JSON Asp.Net Routing, MVVM,DOM HttpModule, HttpHandler
2、, Ajax Jquery JS,Knockout JS,2022/11/27,第2页,内容提纲,三种Web服务主流架构的历史演变与示例。(XML-RPC,SOAP,REST)2. REST兴起与Asp.Net WebAPI介绍。3. Asp.Net WebAPI与相关技术比较及SOA 。4. 与WebAPI配合的前端JS开发框架介绍(Knockout与jQuery)。,2022/11/27,第3页,Asp.Net WebAPI 是什么?,Asp.Net WebAPI 是一种Web服务,是服务器端的技术,要想说清它,就要先把Web服务三种主流架构XML-RPC,SOAP,REST交代一下!,2
3、022/11/27,第4页,三种主流Web服务架构 - XML-RPC,RPC是Remote Procedure Call的缩写,中文是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。一个RPC系统,必然包括2个部分: 1.RPC Client,用来向RPC Server调用方法, 并接收方法的返回数据; 2.RPC Server,用于响应RPC Client的请求,执行方法,并回送方法执行结果。 顾名思义,XML-RPC就是应用了XML技术的RPC,它是一种使用Http协议做为
4、传输协议的远程过程调用(Remote Procedure Call,RPC)机制,使用Xml文本的方式传输命令和数据。后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP。在RPC中,调用双方传递的数据常用二进制,而在XML-RPC中数据将是XML格式的。那么为什么用XML而不用二进制呢?我想一方面是为了兼容更多的语言,因为这个世界上除了C/C+等编译语言,还有很多其他语言,另一方面是为了隔离操作系统的差异,比如说Little Endian和Big Endian的差异等。基于种种原因,XML-RPC选择了XML这种中间语言作为其信息的格式,然后由各个语言负责将其转变成各自native
5、(本土)的数据类型。,2022/11/27,第5页,一个XML-RPC 的例子,2022/11/27,第6页,以下为一个 XML-RPC 请求的范例: examples.getStateName 40 相对于上述请求,以下为一个寻常回应的范例: South Dakota ,三种主流Web服务架构 - SOAP,SOAP:简单对象访问协议(Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(Web Service)中。例如:一个 SOAP 消息可以发送到一个具有 Web Service 功能的 Web 站点,后台有数据库,消息的参数中标明这是一
6、个查询消息,此站点将返回一个 XML 格式的信息,其中包含了查询结果,由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。SOAP具体技术实现: WebService, WCF,2022/11/27,第7页,为什么需要SOAP?,大型企业中信息系统大多数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式。对于部署各种平台上的各式各样的程序开发来说,能在程序之间进行因特网通信是很重要的。以前应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 RPC 会产生
7、兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。而通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。,2022/11/27,第8页,什么是SOAP?,SOAP(Simple Object Access Protocol )简单对象访问协议是是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。更简单地说:SOAP 是用于访问网络服务的协议。SOAP=RPC+HTTP
8、+XMLSOAP的两个主要设计目标是简单性和可扩展性。一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素: 1. 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息。 2.可选的 Header 元素,包含头部信息。 3.必需的 Body 元素,包含所有的调用和响应信息。 4.可选的 Fault 元素,提供有关在处理此消息所发生错误的信息。,2022/11/27,第9页,SOAP 消息的基本结构, . . . . . . ,2022/11/27,第10页,Soap的请求例子,POST /InStock HTTP/1.1 Host: www.example.
9、org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn IBM ,2022/11/27,第11页,Soap的响应例子,HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn 34.5 ,2022/11/27,第12页,三种主流Web服务架构 - REST,表述状态转移: REST (Representational State Transfer),采用Web 服务使用标准的 HTTP 方法
10、 (GET/PUT/POST/DELETE) 来抽象所有 Web 系统的服务能力,它是一种软件架构风格,一种针对网络应用的开发方式,可以降低开发的复杂性。REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。REST具体技术实现: Asp.Net WebAPI,2022/11/27,第13页,三种主流架构的关系,三者目的相同:都是为了实现RPC中的消息交换,为了更方便在网络中传输,而且由于HTTP的无状态性,都使得HTTP为这三者的常用的传输协议。发展史:从之前的各个专有系统之间不能数据交换,到专有的XML-RPC, 后来XML-RPC慢慢
11、的被通用的SOAP开发方式所取代,为了进一步简化,就出现了REST,可以使用操作更简单的JSON替代较复杂的XML。发展趋势:目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的Web服务开始采用REST风格设计和实现。,2022/11/27,第14页,首先回顾一下传统的Web服务,Web service也叫XML Web Service, 它通过标准化接口(WSDL)提供,使用标准化语言(XML)进行描述,并可基于标准化传输方式(HTTP和JMS)、采用标准化 协议(SOAP)进行调用,并使用XML SCHEMA
12、方式对数据进行描述,它有什么好处呢?第一,Web Service是跨平台的,应用程序经常需要从运行在IBM主机上的程序中获取数据,然后把数据发送到主机或UNIX应用程序中去。即使在同一个平台上, 不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。第二,Web Service是无语言限制的,你可以使用.NET,JAVA,PHP,VB.等多种语言开发并进行相互调用。第三, 使用SOAP时数据是以ASCII文本的方式传输,调用很方便,数据容易通过防火墙而实现无缝连接。,2022/11/27,第15页,Web服
13、务特点总结,优点(适用的场景) 1、跨防火墙的通信 2、跨平台,跨语言应用程序集成 3、软件和数据重用 缺点(不适用的场景) 1、 单机应用程序 2、 局域网的一些应用程序,2022/11/27,第16页,一个Web服务的例子,using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace WebServiceSoap public class Service1 : System.Web.Services.WebService
14、 WebMethod public string HelloWorld() return Hello World; ,2022/11/27,第17页,用JS调用Web Service的例子,/这是我们创建的Web服务的地址var URL = “http:/localhost/YBWS/WebService.asmx”;/在这处拼接Http请求内容var data;data = ;data = data + ;data = data + ;data = data + ;data = data + ;data = data + ;/创建异步对象var xmlhttp = new ActiveXOb
15、ject(Microsoft.XMLHTTP);xmlhttp.Open(POST, URL, false);xmlhttp.SetRequestHeader(Content-Type, application/soap+xml);xmlhttp.Send(data);,2022/11/27,第18页,对Web服务的Http请求,POST http:/22.11.143.88:9003/Service1.asmx HTTP/1.1Host: 22.11.143.88:9003Content-Type: application/soap+xml; charset=utf-8Content-Len
16、gth: 314 ,2022/11/27,第19页,对Web服务的Http响应,HTTP/1.1 200 OKCache-Control: private, max-age=0Content-Type: application/soap+xml; charset=utf-8Server: Microsoft-IIS/8.5X-AspNet-Version: 2.0.50727X-Powered-By: ASP.NETDate: Mon, 08 Dec 2014 02:15:12 GMTContent-Length: 361 Hello World ,2022/11/27,第20页,说完Web服
17、务,就轮到WCF了,Windows Communication Foundation( WCF),是微软通用的服务架构平台,其目的在于创建一个通用的Web Service平台,可以在各种不同的协议(TCP, UDP, HTTP)下使用,仅仅通过EndPoint的配置而不需要修改代码实现就能适应不同的工作环境,从而降低了分布式系统开发者的学习曲线,并统一开发标准。它的好处呢?第一,开发的统一性。WCF是对于ASMX, Remoting,Enterprise Service,WSE,MSMQ,TCP开发等技术的整合。WCF是由托管代码编写,无论你是使用TCP通讯,Rmoting通讯还是Web Se
18、rvice ,我们都可以使用统一的模式进行开发,利用WCF来创建面向服务的应用程序。第二,WCF能够实现多方互操作。它是使用 SOAP通信机制,这就保证了系统之间的互操作性,即使是运行不同开发语言,也可以跨进程、跨机器甚至于跨平台的通信。例如:使用J2EE的服务器(如WebSphere,WebLogic),应用程序可以在Windows操作系统进行调用,也可以运行在其他的 操作系统,如Sun Solaris,HP Unix,Linux等等。第三,提供高效的安全与可信赖度,它可以使用不同的安全认证将WS-Security,WS-Trust和WS-SecureConversation等添加到SOAP
19、消息中。,2022/11/27,第21页,WCF的另一个好处,WCF要求客户端保持一致的编程方式,不用考虑服务的位置。不管服务部署在本机上还是别的机器上,WCF不允许客户端直接与服务交互,即使它调用的是本地机器内存中的服务,WCF仍然使用远程编程模型的实例化方式,并使用代理。因而对于本地和远程方式而言,WCF都只需要维持相同的编程模型。这就使得开发者不会因为服务位置的改变影响客户端,同时还大大地简化了应用程序的编程模型。,2022/11/27,第22页,WCF具体实例-服务接口,using System;using System.Collections.Generic;using System
20、.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Web;using System.Text;namespace TerminalService ServiceContract public interface ITerminalService / / 获取当前日夜模式标志及夜间节点wf,queue的服务器地址 / / OperationContract NightServerAddress GetDayNightFlagAndNightServer(); ,
21、2022/11/27,第23页,WCF具体实例-数据合约,using System;namespace TerminalService DataContract public class NightServerAddress string dayNightFlag = “D; string wfValue = String.Empty; string queueValue = String.Empty; DataMember public string DayNightFlag get return dayNightFlag; set dayNightFlag = value; DataMem
22、ber public string wf get return wfValue; set wfValue = value; DataMember public string queue get return queueValue; set queueValue = value; ,2022/11/27,第24页,WCF具体实例-服务具体代码,using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;usi
23、ng System.ServiceModel.Web;using System.Text;using System.Data.SqlClient;using System.Configuration;using System.Data;namespace TerminalService public class TerminalService : ITerminalService public NightServerAddress GetDayNightFlagAndNightServer() NightServerAddress obj = new NightServerAddress();
24、 obj.DayNightFlag = D; obj.wf=http:/22.11.143.88:8008; obj.queue=http:/22.11.143.88:8009; return NightServerAddress; ,2022/11/27,第25页,WCF具体实例-C#客户端调用方法,using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace WebAp
25、p public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); ServiceReference1.NightServerAddress result = client.GetDayNightFlagAndNightServer(); ,2022/11/27,第26页,WCF具体实例-H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Asp .Net Web API及相关技术介绍课件 Net API 相关 技术 介绍 课件

链接地址:https://www.31ppt.com/p-1456134.html