.NET 框架提供了几种可用来快速而方便地完成此任务的通讯方法,而无论您是否对协议和编码有大量的了解。因此,无论是需要快速开发 Web 应用程序,还是要花费更多时间生成关键的企业范围的应用程序(在此过程中涉及许多计算机或操作系统,并使用多种协议和序列化优化),.NET 框架都会支持您的方案。跨进程通讯仍然是一项复杂的任务,但现在它的许多工作都由 .NET 框架处理。选择 .NET 中的通讯选项.NET 框架提供了几种与不同应用程序域中的对象进行通讯的方式,每一种方式都具有特定级别的专业性和灵活性。例如,Internet 的发展已经使 XML Web services 成为一种颇具吸引力的通讯方法,这是因为 XML Web services 是建立在使用 XML 的 HTTP 协议和 SOAP 格式化的通用基础结构之上的。这些都是公共标准,并且可以直接与当前的 Web 基础结构结合使用,而无需担心其他的代理或防火墙问题。 然而,如果只是存在与在 HTTP 连接上使用 SOAP 序列化相关的性能问题,那么并不是所有的应用程序都应使用某种形式的 XML Web services 来建立。下面的子节应有助于您确定要为应用程序采用哪种形式的对象间通讯。ASP.NET 还是远程处理?ASP.NET 和 .NET 远程处理都是进程间的通讯实现方法。ASP.NET 提供一种由 Internet 信息服务 (IIS) 承载的基础结构,该结构擅长处理基本类型,而且是 Web 应用程序开发人员所熟悉的。.NET 远程处理是一般性的且具有高度可扩展性的进程间通讯系统,可以用来创建在 IIS 中承载的 XML Web services(并具有 ASP.NET 和 IIS 的所有安全性、可伸缩性以及会话和应用程序状态)或任何其他类型的通讯。所需的通讯类型和您所熟悉的编程模型是您在两种编程模型之间进行选择的主要依据。请首先选择所需的进程间通讯类型,然后选择能以最容易的方式最佳地实现您的决定的编程模型。以下是选择您可能需要的进程间通讯类型的一些依据(按优先级排序): 1. 安全需要。如果需要保证调用的安全,则必须使用在 IIS 中承载的基于 HTTP 的应用程序,无论它是 ASP.NET 应用程序还是远程处理应用程序。在 IIS 中,基于 ASP.NET 和 .NET 远程处理的应用程序都具有您可能需要的所有安全功能。使用任何其他传输协议,或是在 IIS 外使用 HttpChannel,都需要您自己完成安全工作。请注意,在使用 HTTP 连接时无需使用 SOAP 编码格式;可以使用二进制编码来提高速度。 2. 速度。如果每个调用的效率很关键,则应当使用二进制编码,即使您不使用默认的 TcpChannel 也如此。在远程处理中,可以结合使用二进制格式化程序和 HttpChannel;在 ASP.NET 中,可以使用 POST 通讯。单是使用二进制格式化就可以显著地提高远程处理中的调用性能,即使您使用的是 HttpChannel 也如此。如果没有任何安全问题(例如,如果正在生成完全在防火墙内部运行的小应用程序),则使用二进制格式化的默认 TcpChannel 就能够达到最佳性能。 3. 交互操作。如果必须在不同的操作系统之间进行交互操作,则无论使用 .NET 远程处理还是使用 ASP.NET,都应当使用 SOAP 格式化协议。 4. 可缩放性。无论使用 .NET 远程处理还是使用 ASP.NET,将应用程序承载在 IIS 内部都会获得所需的可缩放性。 5. 随机变更。有几种问题可能会与您有关,例如: · 编程模型易于使用。 · 易于实现扩展性。 · 自定义需要。 · 使用 C++ 的托管扩展。 · 对于远程对象激活、生存期或用户权限的特殊需要。 · 是否需要完全的类型保真。 .NET 远程处理系统为所有这些要求提供了解决方案,而 ASP.NET 系统只对其中某些要求提供支持。 以下是使用 ASP.NET、System.Net 命名空间和 .NET 远程处理生成的 XML Web services 之间存在的一些差异的简短摘要。XML Web services如果您是生成 ASP 应用程序并希望使用 Web 应用程序模型和 ASP.NET HTTP 运行库的功能(包括 Microsoft Visual Studio .NET 中的强大支持),则使用 ASP.NET 生成的 Web 服务可以满足您的要求。通过 XML Web services 基础结构,可以使用最适合于基于 Web 的应用程序的协议、格式和数据类型来方便地创建自己的组件供其他应用程序使用,或是使用他人创建的组件。它不支持 .NET 计算机之间的完全类型保真,并且仅可以传递某些类型的参数。System.Net 命名空间可以使用 System.Net 命名空间中的类从无到有生成整个通讯结构。还可以使用 System.Net 类实现您自己的可以插入到远程处理结构中的通讯协议和序列化格式。.NET 远程处理.NET 远程处理提供用于实现任意数量的全面通讯方案(包括但不仅限于 XML Web services)的工具。使用 .NET 远程处理可以: 猜你喜欢