摘自计算机世界
Visual Basic 是Microsoft 公 司 面 向Windows 程 序 员 的RAD 工 具。Visual Basic 使 用 一 个 基 于 表 格 的 图 形 方 案 进 行 应 用 开 发。 用Visaual Basic 编 写 程 序 的 典 型 方 法 是 创 建 一 个 表 格、 将 部 件 拖 放 到 表 格、 设 定 表 格 及 其 部 件 的 特 征 以 及 加 入 应 用 专 用 代 码 以 处 理 事 件。 这 种 方 法 听 起 来 简 单, 但 开 发 人 员 可 以 采 用 此 方 法 编 写 一 些 功 能 非 常 强 大 的 应 用 程 序。
Visual Basic 的 一 大 特 点 是 其 隐 含 了 大 部 分 令 人 反 感 的 基 于Windows 的 编 程 细 节, 并 允 许 开 发 人 员 将 重 点 放 在 应 用 专 用 的 功 能 性 上。ActiveX 部 件 可 以 提 供Visual Basic 程 序 中 使 用 的 许 多 服 务。 一 旦 学 会 如 何 使 用Visual Basic 中 的 一 个 部 件, 那 么 使 用 任 何 其 它 部 件 只 是 一 件 学 习 其 对 象 模 型 如 何 工 作 的 事 情, 对 象 模 型 有 特 征、 方 式 和 事 件 等。
如 果 你 以 前 使 用Visual Basic, 那 么 首 先 注 意 到 的 将 会 是Visual Basic 5.0 提 供 一 种 新 的 集 成 化 开 发 环 境(IDE)。 图3 即 是 新 的 控 制 项 目 生 成 后 的IDE, 遗 憾 的 是, 该IDE 与Visual Studio 其 它 工 具 所 使 用 的 不 是 同 一 开 发 环 境。IDE 越 来 越 相 似, 但 在 功 能 上 仍 有 不 同, 如 果 你 在 这 些IDE 之 间 来 回 移 动 就 会 发 现 不 同。
Visual Basic 5.0 IDE 拥 有 一 个 传 统 的Windows MDI 外 观。 如 果 你 不 喜 欢, 可 以 从Tools/Options 命 令 切 换 回SDI 方 式。 窗 口 和 工 具 条 可 以 浮 动 或 互 相 连 接 或 者 置 于 屏 幕 边 角。IDE 非 常 灵 活, 因 此 你 可 以 对 事 情 进 行 组 织, 以 实 现 最 大 的 生 产 率。IDE 甚 至 允 许 同 时 打 开 多 个 项 目 - 这 对 于 使 用 用 户 创 建 的 控 制 调 试 项 目 至 关 重 要。 如 果IDE 提 供 的 特 性 不 够 充 分, 你 可 以 创 建 插 入 对 其 进 行 扩 展。
IDE 代 码 编 辑 器 包 含 一 些 新 特 性, 相 信 你 很 快 就 会 希 望 在 所 使 用 的 每 一 种 产 品 中 拥 有 这 些 新 特 性, 其 中 包 括 显 示 可 用 特 征 下 拉 目 录 的List Properties/Methods 以 及 为 语 句 和 功 能 显 示 语 法 的Auto Quick Info。 一 旦 为Visual Basic 输 入 足 够 字 母 以 确 认 你 所 需 要 的 单 词,Complete Word 将 填 入 你 正 录 入 的 单 词 末 尾。Parameter Info 显 示 了Code 视 窗 中 的 一 个 弹 出 式 菜 单, 该 视 窗 包 含 有 关 初 始 函 数 或 者 语 句 的 信 息。Quick Info 为Code 视 窗 中 选 择 的 变 量、 函 数、 语 句、 方 式 或 者 程 序 提 供 语 法。
除IDE 变 化 之 外,Visual Basic 目 前 还 提 供 一 个 本 机 代 码 编 译 程 序。Visual Basic 的 较 早 版 本 将 应 用 程 序 编 译 成P 代 码, 这 需 要 一 个 将 会 减 少 应 用 性 能 的 运 行 时 间 解 释 程 序。 本 地 代 码 编 译 程 序 允 许 开 发 人 员 将 应 用 程 序 编 译 成Intel 本 机 指 示。 你 甚 至 可 以 为 专 用 处 理 器 进 行 优 化, 包 括Pentium 和Pentium Pro。 无 论 将 应 用 程 序 编 译 成 本 机 代 码 还 是P 代 码, 你 都 需 要 交 付Visual Basic 运 行 时 间 文 件, 但 是 本 机 代 码 应 用 程 序 将 会 运 行 更 快。( 即 使 编 译 成 本 机 代 码 导 致 生 成 机 器 代 码, 机 器 代 码 仍 然 需 要 调 用 在Visual Basic 运 行 时 间 内 生 效 的 帮 助 程 序。)
Visual Basic 5.0 企 业 版 提 供 增 强 的 客 户/ 服 务 器 数 据 库 开 发 特 性。Remote Data Objects(RDO) 已 经 得 以 改 进, 包 括 本 地 游 标 支 持、 优 化 的 批 更 新 以 及 无 需 通 过Jet 引 擎 对ODBC 数 据 源 的 直 接 存 取。 你 可 以 创 建 独 立 的 连 接 与 查 询 对 象。 所 提 供 的Connection Designer 可 以 帮 助 在 设 计 时 间 创 建 这 些 对 象,Data Form Wizard 可 以 自 动 生 成 用 于 管 理 数 据 库 信 息 的 表 格。 集 成 化T -SQL 调 试 允 许 开 发 人 员 验 证 在Microsoft SQL Server 数 据 库 上 执 行 的 存 储 过 程。
使 用5.0 版 本,Visual Basic 还 可 以 扩 展 其 功 能, 以 包 括ActiveX 部 件 的 创 建。Visual Basic 4.0 版 能 够 创 建Automation 服 务 器, 该 服 务 器 是 一 种 部 件, 但 不 支 持 功 能 更 为 强 大 的 部 件 特 性。Visual Basic 5.0 允 许 开 发 人 员 创 建 引 发 事 件、 支 持 数 据 绑 定、 支 持 许 可、 拥 有 特 征 页 面 的 部 件, 而 且 是Internet 意 识 的 部 件。Visual Basic 可 以 创 建 几 种 类 型 的 部 件, 包 括Automation 部 件(Visual Basic 称ActiveX Code 为 部 件)、ActiveX 控 制 及ActiveX Documents。
Visual Basic 的 所 有ActiveX 部 件 均 由 创 建 类 模 块 进 行 定 义。 创 建Automation 部 件 并 不 比 定 义 对 象 数 据 与 实 现 一 些 过 程 更 为 复 杂。Visual Basic 将 类 模 块 转 换 成Automation 双 接 口。 使 用 新 的Implement 特 性, 各 个 类 甚 至 支 持 任 何Automation 一 致 的 接 口, 该 接 口 已 在 一 个 类 型 库 中 予 以 定 义。 你 可 以 使 用Event 关 键 字 在 类 模 块 中 定 义 事 件, 并 可 以 使 用RaiseEvent 关 键 字 引 发 事 件。 客 户 使 用 新 的WithEvents 关 键 字, 来 表 明 他 们 需 要 处 理 来 自 特 定 对 象 的 事 件, 然 后 如 同 对 待 其 他 任 何 事 件 一 样, 实 现 事 件 处 理 程 序。
使 用 企 业 版, 你 可 以 为 无 操 作 员 的 执 行 标 记 标 准 部 件, 它 们 没 有 用 户 接 口。 此 时, 部 件 可 在 多 线 程 环 境 使 用。 为 无 操 作 员 的 执 行 所 标 记 的In-process 部 件 支 持COMapartment 线 程 模 型。 为 无 操 作 员 的 执 行 所 标 记 的Out-of-process 部 件 将 跨 多 线 程 分 配 对 象 事 例, 以 便 在 创 建 这 些 事 例 时 实 现 更 好 的 可 伸 缩 性。
企 业 版 还 为 远 程 部 署 部 件 提 供 全 面 支 持。Remote Automation(RA) 最 初 是 为Visual Basic 4.0 企 业 版 开 发 的, 并 对OLE Automation 进 行 了 扩 展, 以 便 它 能 够 跨 机 器 工 作。 它 与Distributed COM (DCOM) 兼 容, 并 可 被DCOM 取 代。 然 而, 在 某 些 情 况 下RA 比DCOM 更 为 适 合。 尤 其 是, 由 于 没 有 对16 位Windows 系 统 的DCOM 支 持, 如 果 你 希 望 支 持16 位 客 户 机, 就 得 使 用RA。 幸 运 的 是, 你 不 必 为 使 用RA 或DCOM 而 编 写 任 何 不 同 的 应 用。 事 实 上,Microsoft 提 供 配 置 实 用 程 序, 你 可 以 用 其 在RA 与DCOM 之 间 进 行 切 换:RemoteAutomation Manager(AUTMGR32) 与Remote Automation Connection Manager (RACMGR32)。
Visual Basic 5.0 使ActiveX 控 制 的 创 建 变 得 极 为 容 易。 你 可 以 将 现 行 控 制 结 合 成 一 个 新 的 部 件 或 者 从 头 创 建 一 个 部 件。 要 么, 你 可 以 将 一 个 称 为UserControl 的 特 定 对 象 用 作ActiveX 控 制 的 基 础。 一 旦 将 任 意 构 成 的ActiveX 控 制 加 入UserControl, 你 就 可 以 使 用ActiveX Control Interface Wizard 规 定 复 合 控 制 将 哪 些 特 征、 方 式 和 事 件 显 示 给 客 户 机。 你 可 以 使 用PropertyPage Wizard 为 控 制 创 建 特 征 页 面。
Visual Basic 5.0 控 制 创 建 特 性 的 主 要 限 制 在 于 你 所 创 建 的 控 制 是 单 线 程 的。 此 外, 还 不 支 持 非 视 窗 控 制。 但 是, 如 果 你 能 够 在 这 些 限 制 下 进 行 工 作,Visual Basic 就 可 以 提 供 一 种 很 好 的 方 法 以 创 建 功 能 强 大 的 轻 型 控 制。 有 关 详 细 情 况, 可 阅 读MSJ 1997 年 第 二 期 和 第 三 期 中Guy 与Henry Eddon 的 文 章。
运 用 另 一 种 称 为UserDocument 的 特 定 对 象, 你 可 以 像 设 计 表 格 一 样, 轻 易 地 创 建ActiveX Document。 在 用Visual Basic 创 建Active Document 时, 你 将 控 制 加 入UserDocument, 而 不 是 加 入Form。 事 实 上,Visual Basic 为 将 普 通 应 用 转 换 成AcitveX Documents 提 供 了 一 个 向 导:ActiveX Document Migration Wizard。 该 向 导 将 项 目 类 型 转 换 成ActiveX Document DLL 或 者EXE, 并 将 一 个UserDocument 加 入 项 目, 然 后 将 表 格 特 征、 控 制 以 及 控 制 后 面 的 代 码 拷 贝 到UserDocument 对 象, 并 将 表 格 事 件 处 理 程 序 移 至 与UserDocument 相 同 的 对 象。
使 用Visual Basic 创 建 的Acitve Document 与 其 他ActiveX Document 略 有 不 同。Visual Basic AcitveX Document 与Visual Basic 表 格 大 致 相 同, 只 能 在Active Document 容 器 中 使 用 - 开 发 人 员 无 法 象 运 行 独 立 应 用 程 序 那 样 运 行 它 们。ActiveX Document 一 般 通 过 存 取 文 件 得 以 激 活。 用Visual Basic 创 建ActiveX Document 项 目 时, 该 项 目 可 生 成 一 个 带 有.VDP 扩 展 名 的 文 件。 这 是 一 种 结 构 化 存 储 文 件, 含 有 应 运 行 的ActiveX Document LSID, 以 及 文 档 显 示 的 所 有 持 久 特 征。 但 是,Visual Basic 的 重 点 似 乎 更 多 的 是 关 于 使Visual Basic 应 用 程 序 在 一 个 文 档 容 器 内 运 行, 例 如Internet Explorer, 而 不 是 在“ 持 久 性” 数 据 上( 将 此 与Word 进 行 比 较, 后 者 的 重 点 在 于 持 久 性 文 档)。
一 旦 创 建 了 一 个 部 件, 你 需 要 将 其 分 布 至 各 客 户 机。Visual Basic 提 供 一 个Setup Wizard, 以 便 用 与 分 布 式 应 用 和 部 件 相 关 联 的 所 有 封 装 版 为 你 提 供 帮 助。 该 向 导 已 在5.0 版 得 到 增 强, 支 持 通 过Internet 进 行 分 布, 而 且 还 使 用DCOM 或RA 支 持 远 程 服 务 器 部 件 的 安 装。