C#远程调用技术WebService修炼手册

摘要:
3) C#WebService调试提示和开发工具。嗨,我的名字是WebService!WebService是一种使用HTTP传输的SOAP协议的远程调用技术。事实上,Web服务的主要目标是跨平台的互操作性。WebService的最大优点是它为异构平台提供了无缝的街道连接技术。
一、课程介绍

一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebService已经过时了啦,学习它干什么用啊!为什么要用WebService,而不用基于当前流行的RestFul ASP.NET WebAPI ?  对于上面的问题阿笨的回答很简单:因为它就是它,不一样烟火的WebService!

本次分享课您将学习到以下干货知识点:

1)、WebService技术调用原理图。

2)、C# WebService常用的几种调用方式。

3)、C# WebService调试小技巧和开发必备工具分享。

4)、实战演练之如何通过优雅的方式进行WebService调用。  优不优雅,你看了就知道了,我们尽可能的Write Less Do More !(强烈推荐)

在此插播一条硬广告:下一堂分享课程阿笨计划将给大家带来《C#远程调用技术WebService葵花宝典》,课程的重点将给大家分享一下“C# WebService两种不同引用使用方式”,“WebService如何使用异步调用”以及“关于C# WebService如何让客户端以安全的方式进行调用目前常用几种的解决方案”等等。阿笨尽量给大家带来一些干货分享!

如果您对本次分享课感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

C#远程调用技术WebService修炼手册第1张
hi大家好,我的名字叫WebService!
二、概念名称含义解释

2.1、什么是远程调用技术(简称:RPC技术)?

一个系统远程调用另一个系统的服务,来获取远程系统的业务数据。

2.2、为什么使用RPC技术?

基于安全性的考虑,一般企业不会开放自己的数据库,只能使用远程调用技术。

2.3、什么是SOAP?

SOAP:(Simple Object Access Protocol)简单对象存取协议。SOAP最早是针对RPC的一种解决方案;SOAP是XML文档形式的调用方法的规范。

2.4、什么是WebService?

WebService是一种使用HTTP传输的SOAP协议的远程调用技术。

2.5、WebService采用的是什么通信协议?

WebService 采用的的基本通信协议是SOAP ,它是在分散或分布式环境中交换信息,它基于XML的协议,通过SOAP协议可以实现不同项目、不同地点、甚至异地调用应用程序。

2.6、为什么说WebService是跨平台的?

实际上,WebService 的主要目标是跨平台的可互操作性。为了达到这一目标,WebService 完全基于XML (可扩展标记语言)、XSD (XMLSchema )等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

2.7、WebService实现包含那三要素?

WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

SOAP作用:规范XML标签。

UDDI:提供webservice服务端的搜索和注册功能。

2.8、WebService有哪些优势?

1)、可操作的的分布式应用程序。

可以实现不同应用程序和在不同系统平台上开发出来的应用程序之间通信。

2)、普遍性、使用HTTP和XML进行通信。

任何支持HTTP和XML 技术的设备都可以拥有和访问Web Service,不同平台不同开发语言照样可以调用我们发布的Web Service。

3)、Web Service 甚至可以穿越防火墙,真正的自由通信。

一般要访问的Web服务器以及要访问的Web Service的客户端很可能位于防火墙后面,都默认关闭其它端口而开发HTTP端口,而Web service 正是基于HTTP的,所以它可以穿越防火墙.

4)、异构平台之间的互通性。

Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的 协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。 通过 SOAP 协议实现异地调用。

小结:

阿笨用通俗一点语言解释就是在当前C#、JAVA、PHP等语言都可以使用标准的WebService技术实现不同语言的应用程序之间进行互相通信,即互相调用。

三、WebService技术调用原理图
C#远程调用技术WebService修炼手册第2张
WebService工作原理图一
C#远程调用技术WebService修炼手册第3张
WebService工作原理图二

3.1、Webservice是如何实现远程调用?三要素在webservice的作用?

(1)Webservice原理:webservice是一种使用http传输的SOAP协议的数据的远程调用技术。

(2) WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

(3)SOAP作用:规范XML标签。

(4) UDDI:提供webservice服务端的搜索和注册功能。

3.2、WebService关键原理说明:

服务者:发布者需要部署Webservice服务应用程序。

调用者:客户端需要参考webservice服务端的使用说明书(WSDL)进行调用。

四、C# WebService常用的几种调用方式

4.1、C#通过Dynamic动态调用WebService。

 其实与手工创建添加引用步骤一样,只是在这里把手动变成了自动而已,动态生成代理类,利用反射动态调用了方法。详细请参考:[C#通过Dynamic动态调用WebService.pdf]文档。

4.2、C#通过模拟HTTP请求协议Get、POST方式进行调用WebService。(根据个人项目情况使用)

详细请参考:[C#通过模拟HTTP请求协议Get、POST方式进行调用WebService.pdf]文档。

4.3、通过手动生成客户端WSDL代理类进行调用。(根据个人项目情况使用)

采用微软给我们提供的wsdl.exe工具生成wsdl本地代理类。

4、通过SOAP协议手动引用方式进行调用。(微软强烈推荐)

五、C# WebService调试小技巧和开发必备工具分享

5.1、C# 如何调试WebService服务以及调试远程Web服务。

详细请参考[C# WebService如何远程调试.pdf]

5.2、Webservice调试利器

1、微软提供的.NET WebService Studio

下载地址:http://webservicestudio.codeplex.com/

2、Storm (推荐)

下载地址:http://storm.codeplex.com/ ,顺便提及下该工具还有一个它的“同胞兄弟”叫 WCF Storm 哦。

3、soapui(强烈推荐)

    下载地址:https://www.soapui.org/downloads/latest-release.html

六、实战演练之如何通过优雅的方式进行WebService调用

统一入口获取指定T类型的WebService服务实例

C#远程调用技术WebService修炼手册第4张
 
客户端调用者将采用统一入口进行访问
C#远程调用技术WebService修炼手册第5张

免责声明:文章转载自《C#远程调用技术WebService修炼手册》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue+elementui搭建后台管理界面(6登录和菜单权限控制)前端页面a标签嵌套a标签效果的两种解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# 获取一个byte数据中某一位的值

开发中,有时候会涉及到需要获取一个byte数据某一位上的值0/1.byte 8位,现在我自己bit编号,从左到右为7,6,5,4,3,2,1,0//返回true表示所取位值为1,返回false,表示所取位值为0//bit索引下标依次为 7,6,5,4,3,2,1,0private bool GetBitValue(byte value, byte bit)...

C#中String跟string的“区别”

  string是c#中的类,String是.net Framework的类(在C# IDE中不会显示蓝色) C# string映射为.net Framework的String 如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。   如果使用C#,建议使用string,比较符合规范 string始终...

PLC做得好好的,我为什么要去学上位机?

一提到上位机,大多数人第一时间只是会联想到编程,认为这是程序员才会去做的事情。   但我们伟大的苹果之父史蒂夫·乔布斯说,「每个人都应该学习编程,因为它教会你思考的方式」。 英国牛津大学研究称,未来20年英国35%现有工作将自动化。日本研究人员称,在未来的十到二十年之内,日本将会有49%的工作岗位被机器人所取代。 正如两百多年前,90% 的人从事农业工...

C#开源类库

  PDFsharp        PDFsharp是一款可以让.NET框架支持的任何语言很容易的创建PDF文件的类库。 ASP.NET FO PDF        FO PDF 是一款C#编写类似于ASP.NET服务器控件的控件。它接受DataTable 和一些其它参数来创建XSL FO,并使用NFOP (Apache FOP Port in J#) P...

C#.Net C/S快速开发框架V2.2版本介绍

C#.Net C/S快速开发框架V2.2版本介绍 C/S结构快速开发框架V2.2 解决方案:CSFramework.* 命名的模块为框架共公模块(核心模块)框架版本:V2.2CSFramework3.* 是客户端及服务端的业务模块.高级版(WebService架构)已升级到3.0,此解决方案模块名是以高级版命名的。注:标准版和高级版框架核心是一样的,...

为什么使用C#开发软件的公司和程序员都很少?

特别是在国内, 在职位搜索网站indeed,职位关键字与数量的对应关系如下(搜索时实时数据): Java - 49624 Python - 16802 JavaScript - 25452 C ++ - 36569 C# - 14267 很显然,C#相关的职位数量是明显落后的,这是为什么呢? C#由编程界的神级人物Anders Hejlsberg主持...