- 浏览: 61427 次
- 性别:
- 来自: 上海
最新评论
-
feipigzi:
我觉得文章内容不如改成四个字——“顾名思义”
FRAMESET和IFRAME各自的优点和缺点 -
yuchujin:
这个也太短了吧
FRAMESET和IFRAME各自的优点和缺点
简介<o:p></o:p>
<o:p> </o:p>
Microsoft? .NET 框架和 Microsoft? Visual Studio.NET 利用 XML 和 SOAP 技术,使开发人员能够创建广泛的解决方案。SOAP 是一个简单、轻便、并在业界获得广泛支持的协议,适用于各种各样的应用,它与 .NET 框架的结合简单而合乎自然。<o:p></o:p>
<o:p> </o:p>
从底层开始,SOAP 的设计目标就是使之成为一种非常简单的协议,能够以各种不同的方式满足各种不同的需求。除了 Microsoft,已有许多公司实际应用 SOAP,例如 IBM、Develop Mentor 和 Userland。<o:p></o:p>
<o:p> </o:p>
在使用 SOAP 的体系中,有若干种关键技术。在创建基于 SOAP 的解决方案时,每种技术都会解决开发人员的一些共同问题。这些技术分别属于 .NET Remoting、ASP.NET Web Services 和 ATL Web Services,它们具有许多共同的技术特点:<o:p></o:p>
<o:p> </o:p>
用于消息生成和使用的 XML。<o:p></o:p>
<o:p> </o:p>
符合 SOAP 1.1 规范,包括第 5 节 SOAP 编码,这使 SOAP 应用之间具有很好的互操作性。<o:p></o:p>
<o:p> </o:p>
XML 保真性(非第 5 节 SOAP 编码),用于完全断开的模型。<o:p></o:p>
<o:p> </o:p>
WSDL(XML 方案的一种形式),用于提供说明。<o:p></o:p>
<o:p> </o:p>
可用无状态编程模型扩展系统。<o:p></o:p>
<o:p> </o:p>
使用 Visual Studio.NET 的良好开发环境。<o:p></o:p>
<o:p> </o:p>
ASP.NET Web Services 和 .NET Remoting 还共享下列技术:<o:p></o:p>
<o:p> </o:p>
XCOPY 系统部署。<o:p></o:p>
<o:p> </o:p>
System.Net,进行网络通讯时,无论在服务器还是客户端它都运行良好。<o:p></o:p>
<o:p> </o:p>
公共语言运行时可在受控代码和线程缓冲池中重用。<o:p></o:p>
<o:p> </o:p>
提供强大的 SOAP 支持,例如 SOAP 头和单向消息等特性。<o:p></o:p>
<o:p> </o:p>
能够与 C#、Visual Basic.NET 或任何符合 CLS 规范的语言(如 Cobol、Python、 ComponentPascal 等等)配合使用来编写应用程序。<o:p></o:p>
<o:p> </o:p>
除了以上列出的共同特点和技术以外,ASP.NET Web Services、.NET Remoting 和 ATL Web Services 还分别为开发人员提供了许多特有的功能,下面这些内容有助于开发人员在生成应用程序时把握正确的方向。<o:p></o:p>
<o:p> </o:p>
如果您要生成 .ASP 应用程序,ASP.NET Web Services:<o:p></o:p>
<o:p> </o:p>
允许与 ASP.NET HTTP 运行时紧密集成。<o:p></o:p>
<o:p> </o:p>
鼓励开发人员着重于运用 XSD 数据类型来提供应用程序。<o:p></o:p>
<o:p> </o:p>
在 Visual Studio.NET 中提供强大的设计支持。<o:p></o:p>
<o:p> </o:p>
如果您要生成 MTS/COM+ 应用程序,.NET Remoting:<o:p></o:p>
<o:p> </o:p>
提供全面的受控代码类型系统的网络保真性。<o:p></o:p>
<o:p> </o:p>
提供在网络上通过引用来传递对象的功能,并且可返回到特定进程中的特定对象。<o:p></o:p>
<o:p> </o:p>
提供二进制通讯能力。<o:p></o:p>
<o:p> </o:p>
如果您要生成 ATL/C++ 应用程序,ATL Server:<o:p></o:p>
<o:p> </o:p>
提供灵活并且可控的本机 (C++) 解决方案。<o:p></o:p>
<o:p> </o:p>
建立于 ATL Server ISAPI Web 应用体系机构之上(利用线程缓冲池、缓存,等等)。<o:p></o:p>
<o:p> </o:p>
将 SOAP 用作 Web 开发工具<o:p></o:p>
<o:p> </o:p>
ASP.NET Web Services 提供了 RAD 方式,以供快速创建和使用 Web 服务。这些服务宽松地组合在一起,并可与 ASP.NET 高度集成。ASP.NET Web Services 是 Web 开发人员在 Internet 上提供 Web 服务的首选方法,它的目标是提供快速、简便、性能优越的 SOAP 服务。<o:p></o:p>
<o:p> </o:p>
ASP.NET Web Services 可以和 ASP.NET HTTP 引擎深入集成,这使得熟悉 Microsoft Web 开发技术的开发人员能够方便地生成和使用基于 SOAP 的 Web 服务。<o:p></o:p>
<o:p> </o:p>
ASP.NET 以 .asmx 文件提供对 Web Services 的支持。.asmx 文件是与 .aspx 文件相似的文本文件。这些文件可以是包含 .aspx 文件的 ASP.NET 应用程序的一部分。它们可以使用 URI 寻址方式,这和 .aspx 文件相同。<o:p></o:p>
<o:p> </o:p>
以下是一个非常简单的 .asmx 文件示例:<o:p></o:p>
<o:p> </o:p>
<%@ WebService Language="C#" Class="HelloWorld" %><o:p></o:p>
<o:p> </o:p>
using System;<o:p></o:p>
using System.Web.Services;<o:p></o:p>
<o:p> </o:p>
public class HelloWorld : WebService {<o:p></o:p>
<o:p> </o:p>
[WebMethod] public String SayHelloWorld() {<o:p></o:p>
return "Hello World";<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
}<o:p></o:p>
<o:p> </o:p>
这个文件以 ASP.NET 指示的 Web Service 开始,并将语言设置为 C#(也可以将语言设置为 Microsoft Visual Basic?、C 或大约 30 种第三方语言中的任何一种)。然后,它将导入名称空间 System.Web.Services。这个名称空间是必要的,您必须在文件中包括它。下一步,声明 HelloWorld 类。这个类从基类 WebService 导出。最后,任何要作为服务的一部分来访问的方法在它们的签名之前将具有自定义属性 [WebMethod],在 Visual Basic 中则为“<WEBMETHOD()>”。<o:p></o:p>
<o:p> </o:p>
要使这个服务生效,可以将文件命名为 HelloWorld.asmx,然后将它放在虚拟目录 Bar 中的服务器 Foo 上。使用几乎任何兼容 HTML 3.2 或更高版本的浏览器,都可以输入 URL http://Foo/Bar/HelloWorld.asmx 来显示这个 Web Service 的公用方法(标有 WebMethod 属性),以及那些可用来调用这些方法的协议,例如 SOAP 或 HTTP GET。如果在 Internet Explorer 地址栏中输入 http://Foo/Bar/HelloWorld.asmx?SDL,基于服务说明语言 (WSDL) 语法,将产生与 XML 文件相同的信息。这个 WSDL 文件由访问服务的客户使用,并且非常重要。<o:p></o:p>
<o:p> </o:p>
访问 Web Serivces<o:p></o:p>
<o:p> </o:p>
除了使开发人员能够创建 Web Services 的技术之外,Microsoft .NET 框架还提供了一套用来“使用”(即以客户端身份访问)Web Services 的成熟工具与代码。因为 Web Services 基于简单对象访问协议 (SOAP) 和 HTTP 等开放协议,所以这种客户端技术也可以用于使用非 ASP.NET Web Services。<o:p></o:p>
<o:p> </o:p>
SDK 中有一种称为 WebServiceUtil.exe 的工具(在 VS IDE 中使用“Add Web Reference...”选项时自动生效)。这个程序可用于下载 Web Service 的 WSDL 说明,然后创建表示这个服务的地址的代理类。例如,您可以输入:<o:p></o:p>
<o:p> </o:p>
WebServiceUtil /c:proxy /pa:http://someDomain.com/someFolder/HelloWorld.asmx?SDL<o:p></o:p>
<o:p> </o:p>
然后,系统将创建称为 HelloWorld.cs 的代理类。<o:p></o:p>
<o:p> </o:p>
这个类与前面创建的类看起来非常相似。它包括称为 SayHelloWorld 的方法,该方法返回字符串。将这个代理类编译到应用程序中,然后调用其方法,结果是代理类在 HTTP 上打包 SOAP 请求,并接收 SOAP 编码的回应,然后封送为一个字符串。<o:p></o:p>
<o:p> </o:p>
从客户端来看,代码非常简单:<o:p></o:p>
<o:p> </o:p>
Dim myHelloWorld As New HelloWorld()<o:p></o:p>
Dim sReturn As String = myHelloWorld.SayHelloWorld()<o:p></o:p>
<o:p> </o:p>
返回值将是“Hello World”。<o:p></o:p>
<o:p> </o:p>
将 SOAP 用作组件开发工具<o:p></o:p>
<o:p> </o:p>
创建分布式应用程序时,如果需要高度控制性并要求能够选择系统耦合程度,那么可以使用 Microsoft .NET Remoting。<o:p></o:p>
<o:p> </o:p>
Microsoft .NET Remoting 还提供了与公共语言运行时的深入集成,并且为开发人员提供了全面的跨连接类型系统保真性。这包括构造函数、委托、重载方法、通过值和引用传递对象、类的层次结构、接口、方法、属性、字段,以及通过可插入通道、分布式标识、激活、租用生存期和 CallContext(独立于参数的 SOAP 头中的流对象)在连接上的应用程序 (Web Services) 之间进行 Marshal by Value(制作副本)以及 Marshal by Ref(传递 ObjRef)。<o:p></o:p>
<o:p> </o:p>
使用 .NET Remoting,开发人员可以从任何进程提供 Remoting 终结点,包括控制台应用、GUI 应用、NT Service 和 IIS。在任何使用有效加载编码(在产品中提供了可插入序列化格式化程序以及 SOAP 和二进制格式化程序)通过可插入通道进行的任何传输过程中都会出现这种情况。SOAP=HTTP+XML,同时完全支持 HTTP 和 SMTP 上的 SOAP 1.1,这十分令人满意。<o:p></o:p>
<o:p> </o:p>
我们可以获得 WSDL 支持来说明 Web Service 并保证运行时类型系统的完全保真性。.NET Remoting 提供了 .NET SDK 的 Soapsuds 工具,可以从元数据生成受控类和 COM 对象的服务说明。Soapsuds 工具也使用服务说明并生成元数据和代理。开发人员可以使用密集侦听模型,将自己的操作作为应用程序入站和出站消息流插入。想更为深入的开发人员则可以采用使用套接字的二进制编码 TCP 通道。<o:p></o:p>
<o:p> </o:p>
.NET Remoting 使受控组件、本机 COM/COM+ 组件以及接受服务的组件(使用 COM+ 服务的受控组件)远程化。SOAP、二进制以及任何一种可插入通道和格式上都可能出现这些情况。<o:p></o:p>
<o:p> </o:p>
样例:SOAP 受控代码事件<o:p></o:p>
<o:p> </o:p>
下列代码演示如何在两个应用程序之间引发受控代码事件。客户端有一个本地对象,注册为接收远程对象的事件通知。客户端呼叫服务器对象时,就引发事件,产生对客户端本地对象的回叫。<o:p></o:p>
<o:p> </o:p>
服务器端<o:p></o:p>
<o:p> </o:p>
zap.cs<o:p></o:p>
using System;<o:p></o:p>
<o:p> </o:p>
namespace Zap<o:p></o:p>
{<o:p></o:p>
// 定义事件参数<o:p></o:p>
public class GreetingEventArgs : EventArgs<o:p></o:p>
{<o:p></o:p>
public GreetingEventArgs(string greeting)<o:p></o:p>
{<o:p></o:p>
this.greeting = greeting;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
public string greeting;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
// 定义事件<o:p></o:p>
public delegate void GreetingEvent(object sender,<o:p></o:p>
GreetingEventArgs e);<o:p></o:p>
<o:p> </o:p>
// 定义服务<o:p></o:p>
public class Waz : MarshalByRefObject<o:p></o:p>
{<o:p></o:p>
// 客户端将预定和取消预定此事件<o:p></o:p>
public event GreetingEvent Greeting;<o:p></o:p>
<o:p> </o:p>
// 由客户端远程调用的方法<o:p></o:p>
public void HelloMethod(string greeting)<o:p></o:p>
{<o:p></o:p>
Console.WriteLine("Received String {0}", greeting);<o:p></o:p>
<o:p> </o:p>
// 将字符串打包到 GreetingEventArgs 中<o:p></o:p>
GreetingEventArgs e = new GreetingEventArgs(greeting);<o:p></o:p>
<o:p> </o:p>
// 引发事件<o:p></o:p>
if (Greeting != null)<o:p></o:p>
{<o:p></o:p>
Greeting(this, e);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
发表评论
-
全面剖析C#正则表达式
2006-06-07 16:52 1810全面剖析C#正则表达式 ... -
水晶报表注册码(收藏)
2006-06-07 16:56 2066水晶报表注册码(收藏) <script language ... -
C#中直接调用VB.NET的函数,兼论半角与全角、简繁体中文互相转化
2006-06-15 11:25 1010在C#项目中添加引用Microsoft.VisualBasic ... -
用C#生成随机中文汉字验证码的基本原理
2006-06-21 13:54 8031、汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的 ... -
用反射调用任意.net库中的方法
2006-06-21 13:55 621注: 1、ReturnMessage 是我自写的一个类,作用请 ... -
.NET框架中基于角色的安全性
2006-06-21 13:57 626概述<o:p></o:p> < ... -
DotNET(C#) Socket基本编程
2006-06-21 13:59 1077Socket基本编程 服务端: using System.Ne ... -
解读C#中的规则表达式
2006-07-25 13:50 585多少年来,许多的编程 ... -
解读C#中的规则表达式
2006-07-25 13:50 665多少年来,许多的编程 ... -
ASP.NET程序中常用的三十三种代码
2006-08-24 17:12 6691. 打开新的窗口并传送参数: 传送参数:response ... -
打造一个通用ASP.NET数据分页控件
2006-08-24 17:14 1049打 ... -
.net的优点
2008-03-10 13:55 13901.标准集成:XML、SOAP及其它 过去,微软的体系结构建立 ... -
ASP.NET的优点与缺点
2008-03-10 13:57 3563一. ASP.NET的演变:DENALI ASP 的第一个测试 ... -
回头看.Net的优点与进步
2008-03-10 13:58 938最近公司要竞标一个项目,对方指定要.Net,因此又重操旧业, ... -
c#学习笔记(1)
2008-03-10 14:11 7611, 结构(struct) 与 类(class)[attrib ... -
Web Service中保持ASP.net的状态
2008-03-11 12:44 1927简介 网络程序开发 ... -
c#面试题及答案
2008-03-13 16:30 2820c#面试题及答案 2 .列举 ...
相关推荐
它的结构化特性使得数据可以被解析、验证和理解,这在.NET框架中尤为重要。 .NET框架是由微软开发的一个全面的开发平台,用于构建、运行各种类型的应用程序。它包含了一套丰富的类库,一个通用语言运行时(CLR),...
- **XML在.NET框架中的应用**:.NET框架提供了强大的工具和支持,使得开发人员可以轻松地创建、读取和处理XML文档。例如,System.Xml命名空间包含了用于处理XML数据的各种类和接口。 #### 二、Web服务的概念与特性 ...
它详尽解析了.NET框架的核心机制,揭示了.NET平台的设计理念,帮助开发者更好地理解和利用这个强大的开发工具。 .NET框架是微软推出的一个综合性的开发平台,它为构建和运行基于Windows的应用程序提供了全面的支持...
这本书详细讲解了.NET框架的核心组件,包括C#、VB.NET等编程语言,以及ASP.NET、Windows Forms和ADO.NET等关键技术和库。以下是对书中内容的详尽解析: 1. **.NET框架基础**:首先,书本会介绍.NET框架的基本架构,...
在《Spring.NET框架参考文档》中文版.chm中,你将找到关于所有这些特性的详细说明,包括配置、API使用、示例代码和最佳实践。这份文档是深入理解Spring.NET框架的关键,无论你是初学者还是经验丰富的开发者,都能...
12. **反射与元数据**:反射是.NET框架中的一个重要特性,允许在运行时检查和操作程序集、类型、方法等。示例可能演示了如何使用反射创建对象、调用方法和获取类型信息。 13. **WCF服务**:如果涉及网络通信,可能...
Web服务是.NET框架中的一个重要概念,它们是基于开放标准(如SOAP和WSDL)的自包含、自描述的模块化应用程序,可以通过Internet进行调用。开发者可以使用ASP.NET轻松创建和部署Web服务,使得不同系统间的互操作性...
.NET框架是微软公司推出的一个全面的开发和运行环境,主要用于构建、运行基于Windows操作系统的应用程序。它包含了大量的类库,提供了丰富的功能,如数据库访问、网络通信、图形界面设计等,简化了开发过程。.NET...
在.NET框架中,Web服务是一种基于标准协议(如SOAP)的远程调用技术,它允许不同系统间的应用程序通过网络进行通信。本实例解析将深入探讨如何在.NET环境中创建、部署和使用Web服务。 【描述】:“基于.NET框架的...
通过深入研究".NET框架技术(典型代码示例)framework_code"中的实例,开发者不仅可以掌握.NET Framework的基础知识,还能了解到在实际项目中如何运用这些技术,提升编程技能和项目经验。无论你是初学者还是经验丰富...
- **VB.NET与Java**: 分别代表了Microsoft .NET框架下的Visual Basic语言和跨平台的Java编程语言,它们都能支持通过SOAP协议与WebService进行交互。 #### 二、搭建环境与准备工作 1. **选择一个WebService**: 在本...
【XML、Web服务和.NET框架】是现代软件开发的关键技术,它们推动了应用程序开发的革命,显著提高了开发人员的生产力,开启了全新的应用模式。.NET框架作为微软的开发平台,由公共语言运行时、类库集合和ASP.NET(ASP...
ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能来创建动态网站、Web服务和Web应用程序。SOAP(Simple Object Access Protocol)是用于交换结构化信息的标准协议,常用于Web服务通信,允许...
这篇论文深入探讨了基于.NET框架开发Web服务的方法和实践,特别是在电子商务系统中的应用。通过对.NET框架、ASP.NET、Web服务特性和开发工具的分析,以及对Web服务移植和性能优化的研究,为使用.NET框架进行电子商务...
6. **用户界面设计**:在.Net框架中,Windows Forms和WPF(Windows Presentation Foundation)是两种常见的图形用户界面开发技术。它们提供了丰富的控件和动画效果,可以创建美观且用户友好的操作界面。 7. **网络...
Spring.NET框架由多个模块组成,包括Core Container、Data Access/Integration、AOP、Web等,这些模块可以按需选择和组合,避免引入不必要的依赖。 ### 9. 配置与元数据 Spring.NET使用XML配置文件或基于代码的...
.NET框架也支持开发Web服务,如SOAP和RESTful服务。通过ASP.NET Web Services(ASMX)或WCF(Windows Communication Foundation),开发者可以创建可跨平台和跨应用程序边界通信的服务。课程将涵盖Web服务的创建、...
微软的.NET框架在分布式应用程序开发领域提供了强大的支持,其中包括了WebService和.NET Remoting两种主要技术。这两项技术为构建中小型分布式系统提供了不同的技术方案。 WebService技术是一种基于网络的、分布式...
在.NET框架中,SOAP Extensions是一种强大的机制,允许开发者扩展SOAP消息处理管道,以实现自定义的行为,例如日志记录、安全增强、性能监控等。这个源码例子是关于如何利用SOAP Extensions来监控Web Services的使用...