| | | Microsoft .NET框架和Visual Studio.NET中的SOAP | | 2001-12-19·
·Keith Ballinger,Jonathan Hawkins,Pranish Kumar··microsoft
| 上一页 1 2 3 4 5 下一页 访问 Web Serivces
除了使开发人员能够创建 Web Services 的技术之外,Microsoft .NET 框架还提供了一套用来“使用”(即以客户端身份访问)Web Services 的成熟工具与代码。因为 Web Services 基于简单对象访问协议 (SOAP) 和 HTTP 等开放协议,所以这种客户端技术也可以用于使用非 ASP.NET Web Services。
SDK 中有一种称为 WebServiceUtil.exe 的工具(在 VS IDE 中使用“Add Web Reference...”选项时自动生效)。这个程序可用于下载 Web Service 的 WSDL 说明,然后创建表示这个服务的地址的代理类。例如,您可以输入:
| WebServiceUtil /c:proxy /pa:http://someDomain.com/someFolder/HelloWorld.asmx?SDL | 然后,系统将创建称为 HelloWorld.cs 的代理类。
这个类与前面创建的类看起来非常相似。它包括称为 SayHelloWorld 的方法,该方法返回字符串。将这个代理类编译到应用程序中,然后调用其方法,结果是代理类在 HTTP 上打包 SOAP 请求,并接收 SOAP 编码的回应,然后封送为一个字符串。
从客户端来看,代码非常简单:
Dim myHelloWorld As New HelloWorld() Dim sReturn As String = myHelloWorld.SayHelloWorld() | 返回值将是“Hello World”。
将 SOAP 用作组件开发工具
创建分布式应用程序时,如果需要高度控制性并要求能够选择系统耦合程度,那么可以使用 Microsoft .NET Remoting。
Microsoft .NET Remoting 还提供了与公共语言运行时的深入集成,并且为开发人员提供了全面的跨连接类型系统保真性。这包括构造函数、委托、重载方法、通过值和引用传递对象、类的层次结构、接口、方法、属性、字段,以及通过可插入通道、分布式标识、激活、租用生存期和 CallContext(独立于参数的 SOAP 头中的流对象)在连接上的应用程序 (Web Services) 之间进行 Marshal by Value(制作副本)以及 Marshal by Ref(传递 ObjRef)。
使用 .NET Remoting,开发人员可以从任何进程提供 Remoting 终结点,包括控制台应用、GUI 应用、NT Service 和 IIS。在任何使用有效加载编码(在产品中提供了可插入序列化格式化程序以及 SOAP 和二进制格式化程序)通过可插入通道进行的任何传输过程中都会出现这种情况。SOAP=HTTP+XML,同时完全支持 HTTP 和 SMTP 上的 SOAP 1.1,这十分令人满意。
我们可以获得 WSDL 支持来说明 Web Service 并保证运行时类型系统的完全保真性。.NET Remoting 提供了 .NET SDK 的 Soapsuds 工具,可以从元数据生成受控类和 COM 对象的服务说明。Soapsuds 工具也使用服务说明并生成元数据和代理。开发人员可以使用密集侦听模型,将自己的操作作为应用程序入站和出站消息流插入。想更为深入的开发人员则可以采用使用套接字的二进制编码 TCP 通道。
.NET Remoting 使受控组件、本机 COM/COM+ 组件以及接受服务的组件(使用 COM+ 服务的受控组件)远程化。SOAP、二进制以及任何一种可插入通道和格式上都可能出现这些情况。
上一页 1 2 3 4 5 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|