ActiveX

      网络技术 2005-4-3 15:38

简而言之,下面就是答案,接下来是关于何时使用和何时不使用 ActiveX 的一些实用的建议:

ActiveX 没有过时。据 Giga Information Group 称,1997年度 ActiveX 的销售额为 4.1 亿美元,预计 1999 年将突破 10 亿美元。已经有了 6000 多个控件并且在二月份的第三周中,C/Net 的 ActiveX 站点的下载次数超过了 21,000 次。


ActiveX 没有离我们而去。ActiveX 技术是我们的一项关键技术,没有它我们的 COM 战略就会留下一个缺口。
请再次告诉我 ActiveX 是什么。
ActiveX 是基于 Component Object Model (COM) 的可视化控件结构的商标名称。它是一种封装技术,提供封装 COM 组件并将其置入应用程序(如(但不限于)Web 浏览器)的一种方法。

ActiveX 控件是 VBX 的后继产品。您也可认为曾称做 OLE Custom Control(或 OCX)的组件是 ActiveX 控件。

但是我认为 ActiveX 是 Microsoft 整个组件技术的商标名称。
我承认这点。宣传时使用该术语有点言过其实,以至于使好多人相信 ActiveX 就代表了整个组件模型。

那是不对的。ActiveX 只是 COM 对象的封装技术。

我获悉你们现在不再强调 ActiveX 而重视 COM。
去年秋天,我们取消了因 ActiveX 而出现的过分的定义,并把它还原到其原始的小范围的意义。

至于强调 COM,我们实际上已经强调好多年了。这只是我们跟谁讨论和如何讨论的问题。

坦白地说,COM 对作者来说可能是一个很难理解的主题。短小的新闻性文章不能将其解释请楚,因而这里只是一些简单的消息。

有时使用 COM 控件很不容易。这就是我们为何要创建框架(如 ActiveX)来简化它的原因。虽然如此, COM 自 1993 年以来一直是我们的组件的战略核心。

我需要更多细节。ActiveX 控件与 COM 组件间有什么区别?
ActiveX 控件是一种 COM 组件,它支持在可视化开发工具中所使用的必需的协议。换句话说,您可以用眼睛看着使用它。现在,这并不意味着 ActiveX 控件在运行时是可见的。它只有在设计时才是可见的。这种控件的一个示例就是计时器。开发人员在设计应用程序时能看见它,但最终用户是永远也不会看到它的。

这些"必需的协议"是什么?
它们包括这样一些东西,如可视化开发工具用来处理屏幕空间以及在注册表中显示出"工具箱"图形的数据项界面等。

还有别的方法可以区分 ActiveX 控件吗?
有的,那就是:

通常封装到 DLL 中,扩展名为 .OCX。


自我注册和取消注册。


通过自动操作实现程序设计。
OLE 在什么地方适用?
OLE 并没有深入到对象技术的整个系统,可以认为它只是 COM 顶层的另一个框架,有点类似于 ActiveX。OLE 支持复合文档或文档内的文档。

我何时使用 ActiveX?
如果想要建立一个具有强大功能的小组件,用来访问系统服务并能够被放入窄范围意义的客户端中(如浏览器),这时可以使用 ActiveX。例如,如果您需要一个可打印或写入注册表的组件,请使用 ActiveX。

同样,如果您想不用再去学一门新语言就能编写组件,也可使用 ActiveX。您能用任何语言创建 ActiveX 组件。

何时我不该用 ActiveX?
如果您正在编写一个简单的、轻量级的用户界面组件,不要使用 ActiveX,我们推荐 Dynamic HTML。

老实说,Web 上的许多东西,如选取框控件或是简单的应用程序,都是用 Java 小程序或 ActiveX 控件来编写的,但不应这样做。这些东西最好用 Dynamic HTML 来实现。

跨平台支持的情况如何?
ActiveX 是为增加强大的功能而专门设计的,不能普遍应用。这些控件依赖 Win32 特性,因此不能在 UNIX 或者 Macintosh 上使用。

如果 ActiveX 没有过时,为何大惊小怪?
许多人都认为 ActiveX 纯粹是 Internet 技术,这正是他们的成功很有限的原因。

ActiveX 并不仅限于 Internet。我们将看到在 Intranet 中 ActiveX 的使用不断增多,同样,在前端不是浏览器的应用程序中也将增加 ActiveX 的使用。作者和分析家通常不考虑这些,但这正是 ActiveX 控件的市场所在。
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}