应用程序设计选择

本文讨论进行 Internet 编程时需要考虑的一些设计问题。

本文涉及的主题包括:

如果你已准备好开始编写程序,请参阅编写 MFC 应用程序

Intranet 与 Internet

许多应用程序在 Internet 上运行,具有浏览器并可访问 Internet 的任何人都可以访问它们。 企业还会实施 Intranet,这是一种使用 TCP/IP 协议和 Web 浏览器的公司范围网络。 Intranet 为公司范围的信息提供易于升级的中心来源。 它们可用于升级软件、交付和制作调查、提供客户支持和传送信息。 下表比较了 Internet 和 Intranet 的特性。

Internet Intranet
低带宽 高带宽
数据和系统的安全性较低 对数据和系统的受控访问
极低的内容控制度 较高的内容控制度

客户端或服务器应用程序

应用程序可以在客户端计算机或服务器计算机上运行。 还可以将应用程序存储在服务器上,然后通过 Internet 下载并在客户端计算机上运行。 MFC WinInet 类供客户端应用程序用来下载文件。 MFC 和异步名字对象类用于下载文件和控制属性。 ActiveX 控件和 Active 文档的类用于客户端应用程序,以及从服务器下载以在客户端上运行的应用程序。

网页:HTML、Active 文档、ActiveX 控件

Microsoft 提供了多种在网页上提供内容的方式。 网页可以使用标准 HTML 或 HTML 扩展(例如对象标记)来提供 ActiveX 控件等动态内容。

Web 浏览器通常显示 HTML 页。 Active 文档还可以在支持 COM 的浏览器的简单点选单击式界面中显示应用程序的数据。 Active 文档服务器可以在整个工作区中以全框架显示文档,并具有自身的菜单和工具栏。

编写的 ActiveX 控件可以从服务器异步下载并显示在网页上。 在将信息发送到服务器之前,可以使用 VBScript 等脚本语言来执行客户端验证。

浏览器或独立应用程序

可以编写嵌入在 HTML 页中的 ActiveX 控件,以及在浏览器中查看的 Active 文档服务器。 可以编写包含按钮的 HTML 页,以提交在 Web 服务器上运行 ISAPI 应用程序的请求。 可以编写使用 Internet 协议下载文件并向用户显示信息的独立应用程序,而无需使用浏览器应用程序。

Internet 上的 COM

ActiveX 控件、Active 文档和异步名字对象都使用 COM(组件对象模型)技术。

ActiveX 控件为 Internet 站点上的文档和页提供动态内容。 借助 COM,可以使用 Active 文档生成 ActiveX 控件和全框架文档。

异步名字对象提供的功能(包括增量或渐进式数据下载)使控件能够在 Internet 环境中正常执行。 控件还必须与其他可能同时以异步方式检索数据的控件配合工作。

客户端数据下载服务

有两组 API 可帮助将数据传输到客户端,它们分别是 WinInet 和异步名字对象。 如果 HTML 页上包含较大的 .gif 和 .avi 文件以及 ActiveX 控件,则你可以使用异步名字对象或异步使用 WinInet,来提高用户在异步下载内容时的响应速度。

Internet 上的一项常见任务是传输数据。 如果你已在使用 Active 技术(例如,已有一个 ActiveX 控件),则可以使用异步名字对象在下载数据的同时逐渐呈现数据。 可以使用 WinInet 通过常见的 Internet 协议(例如 HTTP、FTP 和 gopher)来传输数据。 这两种方法都提供协议独立性,并为使用 WinSock 和 TCP/IP 提供一个抽象层。 仍可以直接使用 WinSock

下表汇总了使用 MFC 通过 Internet 传输数据的多种方式。

使用此协议 在这些情况下 使用这些类
使用异步名字对象进行 Internet 下载 使用 COM、ActiveX 控件和任何 Internet 协议进行异步传输。 CAsyncMonikerFileCDataPathProperty
WinInet HTTP、FTP 和 gopher 的 Internet 协议。 数据可以同步或异步传输,将存储在系统范围的缓存中。 CInternetSessionCFtpFileFindCGopherFileFind,等等。
WinSock 提供最高效率和控制度。 需要了解套接字和 TCP/IP 协议。 CSocketCAsyncSocket

另请参阅

MFC Internet 编程任务
MFC Internet 编程基础知识
Win32 Internet 扩展 (WinInet)
Internet 上的异步名字对象